[EDIT] This post originally contained ideas about a "Tournament mode" with fancy stuff. It was over complicated so I edited the post to make it easier to understand, with the bare minimum of what I was suggesting. This feature would be a good start and could eventually be used for a full tournament mode. [/EDIT]
Suggestion:
Have a server setting unrelated to "maxplayers" that sets a maximum number of "active players", that is, a maximum number of players that can join a team. Once the maximum number of "active players" is filled, remaining spectators cannot join a team and have to remain in "observer mode".
This feature would make it possible, for example, to connect to a duel server even if there are already 2 players connected. If both "active players" spots are taken, someone connecting to the server would not be able to enter the game and ruin an on-going match, but would be able observe the match.
Problems:
The biggest problem with this is of course "cheating", which would make this feature unavailable for ladder servers, with good reason, unless the feature can be voted on or off ("maxplayers 2" when set to "off"? If there are more than 2 players at that time on the server, what would happen?).
Still using duel servers as example, another problem would be that when the 2 active players are ready to play the match, there is no way to prevent an observer to steal a spot once the map restarts, because when a map starts, by default everyone is an observer and have to pick a team to enter the game. To resolve this problem, server would need to remember who were the active players after map restart, some kind of "lockteams" command.
That's about it.