Kinda surprised that no one has mentioned this but why not balance teams immediately after the warm up round based on their skill point rank? If you look at the top25 people that play on the server they play very often and are usually on the same team at the beginning of every map which leads to the initial stack. If this was done I believe it would eliminate most of the team balancing caused by early stacks.
You could average out all the players skill points and move people accordingly to make each team have as close to the average as possible. Of course this method has flaws such as someone that’s new to the server that happens to be godlike but that would take care of itself in time anyway.