when a player quits...
You (the developers) go through a lot to do matchmaking and get 10 reliable people into a game. And no complaints. But even after all that, some players drop out. There's those that disconnect (and usually return) and those that quit, and are gone. This hurts and usually is a decisive factor in a game.
I wanted to offer a way around that condition.
Step 1: modify playback speed in spectating. right now you've got a consistent ~4 min delay which is important so friends can't get a gods eye view and help a team cheat. And the replay runs in 1-1 real time. But suppose you started with a 2 min delay (for example), ran slightly less than real time, stretch the delay to 4 minutes...keep that then go slightly faster than real time top bring it down too 3 (for example). The point here is to just be able to do more or less than real time in spectate.
step 2: people who are spectating have gone through all the hoops to load all the game settings. so they are, in essence, ready to go. Now suppose a player on either team quits. Offer up to the spectators that they may take that position. First to say yes, gets it.
step 3: whoever gets selected to take over, shift them from gods eye view to view of the character they're taking, accelerate their spectate well above real-time. bring them up to current time and they take over for the absent character.
Given your efforts to balance battles, there is potential for a much stronger replacement player. So you'd probably want some rules about relatively similar level between lost player.