I think I have found why we experience slow startup in VR2Gather and not in our Python test code.
In VR2Gather we call sub_enable_stream() very early (right after sub_play()), and it appears as though this call blocks until it has been successful. I.e. until the next segment boundary has happened.
One point of discussion is whether this blocking is a good idea.
Another point of discussion is, assuming it is a good idea, whether it should also block if I am calling sub_enable_stream() for the exact streams I have already enabled.
@rbouqueau let's discuss.