I've merged your threads into one, because it's easier to discuss this jointly.
I think it all comes down to one detail about how the session identifer is and isn't used. The session ID you set in named multi-user sessions is used as an identifier for the annotations created. It's not currently used in the exclude logic. So when you start the server, annotations that are already in the dataset are filtered out, and that stream is then used to distribute questions to annotators.
I think we can probably put together some code for a custom filter that you can plug in that lets you implement feed filtering based on previous annotations and session IDs. But it might still be much more straightforward and easier to reason about to just start separate, isolated instances for each annotator.