you're not trying to do the impossible, but the work around will probably mean hacking the standard release page code ;-)
As far as I recall, even though you are using $CurrSession, queries from within a layout script aren't registered in the session object (the reason being that some fools (ie me amongst others) use large numbers of queries in layouts) unless queryName is specified. What you might want to do in your layout script is print out the session info where you'll be able to see what the last query done was ... the queryName attribute will give the query a name, however, SRS in it's infinite wisdom rarely uses this to track which query it is on, it uses the queryN attribute of the $UPQ object that refers to query for that results set.
I think what you need to do is find out what the queryN is for the query you've just done, something like
will give you the query object, then you can access the queryN attribute using
or you can get it using
occur so that the reflect the query number you want to use.
call. This will set the queryN to the correct value for the query you do in the layout script. At that point you don't need to redo the query with a query string just use :
$set=$s.query:[queryName:XXXXX] where XXXXX is the query name you used in the context section. You may be lucky and get $entries reset to the set you want if you use a loader in the contexts chunk of the page.
hope that makes sense and you're brave enough to play with the guts of pages :-)
all the best