Hmmm, the docs for Class Selector doing a respawn on team change is not matching what is actually happening, they say changing team will force a respawn.
I would make them respawn into the waiting area with the 12 player spawners for Team index: 1 and 12 Player Spawners for Team Index: 2, and teleport them from there after the sequence, just to be consistent with the Class Selector Documentation.
But I have no idea if this will sort out the player joining problem. It would be nice if it was consistent and allow you to Dynamically select teams and keep it that way.