I want to take this dual imaging route too. Doubling my imaging time has no price
My 2 grains of salt:
I think KISS principle should be applied here. One camera+ekos instance is the master with responsibility for slewing, aligning, guiding and dithering.
All other cameras+ekos instances should be slaves and have only responsibility of focusing and imaging.
Maybe a "readonly" connection to guiding, that way it can stop imaging if guiding is paused or dithering and then restart slave sequences. Perhaps a simple deviation threshold would suffice. Anyways even if the slaves are not stopped it is only a matter of loosing a few frames and having to sort them in post.
For multiple targets I would consider using alignment module on the slaves, using the slave camera itself with a simulator telescope. That would delay next slave sequence startup. Hopefully this can be achieved only by tweaking settings and alignment retries.
I think this approach is not perfect, it is tedious, requires scheduling targets at given time on all instances, probably PHD2 would be required for guiding as it already provides a server API.
But I believe is doable with current codebase. Also it is perfectible with some small developments not requiring a major architecture revamp.
I'll be looking into this in the following months, still a lot to figure out, hopefully with some success I can then share here.