Good day,
in my lobby today we had the need for a sub right before both teams got the chance to ready up.
My suggestion in this case (while the game is not live yet at least) would be:
Instead of accepting the first player for that sub position, maybe wait some additional time (like 30sec maybe?) to gather some more players willing to fill that spot. After that time has passed, have the system decide which players suits the spot best in terms of balance. I except you keep the "team score" or whatever you use during the lobby, so it should be easy to find a best fit out of a few players. ofcourse it won't be perfect, but it's only a small effort to keep balance.
cheers,
Netsky