Rendering multiple realtime scenes in different viewports with Hydra/HdStorm

I have a scenario, where I have a lot of scenes in small thumbnail viewports and a couple of big render viewports with more complex scenes.
I am using hydra directly via a setup of custom rendertasks and scene indices, which get data from our internal non USD datasources.
To achieve multiple scenes I am plugging one scene index with a special scene root prefix for each scene into my render index.
At render time I am rendering scene by scene with HdEngine::Execute() after I switch the current collection for my render tasks.
The collection just has the appropriate root prefix set to filter for the appropriate scene prims.
However, this approach doesn’t seem to be that performant as I hoped. It looks like there is much more synch work involved when switching scenes.
I guess SetCollection causes a resynch of all prims of all scenes to filter for the prims in the correct root path?
Another idea was to use multiple HdEngines with its own render delegate, but this could imply huge memory waste.
Yet another idea is just switch scenes by having one scene index, where all scenes are contained in subtrees but instead of collection setting, set the scene prims visibility to switch scenes.
However I am not sure whether this is more performant than my current approach.
So my question is: How can I render multiple scenes per frame in a performant way with HdStorm/hydra, so that it can reuse as much resources as possible? Is there a recommended way?

Cheers,
Robert