During "waiting for players", turn on friendlyfire and instant spawn. It's actually a big hit on my server, and I don't run a "fun" server either. It does not disrupt gameplay at all, the silly stuff ends when the game starts, it gives people something to do while waiting for people to join, consider it a warmup.
If you want a longer waiting for players time, say, 60 seconds, put this in your server.cfg:
sm_cvar mp_waitingforplayers_time 60
For coders: It works by counting each round start, there is one "teamplay_round_start" event when the first player joins a team, then another when the actual game or setup time starts. There is an event called "teamplay_waiting_begins" but it never fired.
p.s. karma me up, I got into a few flamewars here before and could use the positive cosmic energy to balance.
1.1 - fixed possible bug that would print errors in the logs.
1.0 - initial release