I have some updates on that subject - could be usefull for somobedy...
1. In opus arexx manual ("custom handlers: active" section) it says that cache is taking the name from liser's title and if it is empty/not set then from lister's path.
That is not true - lister's title has nothing to do with the cache's name - only PATH is important.
2. Unfortunately LISTER FINDCACHE, when successful, closes my port for custom handlers!! (same as LISTER EMPTY)
In other words: if custom cache is found and displayed the port is closed.
-- GAME OVER --
EDIT
This is crazy.
Looks like it's not LISTER FINDCACHE responsible for closing the port. That command, when the cache is found, replaces the string in lister's path - when the string is replaced the port closes.
But...there is a workaround
Add few extra lines to the script that will take care of "path" event - just put a dummy command between them and the port stays open.
So there is still a hope ...