I know if there aren't any spawns available you can't join the team... if you can get in the team by any chance (trick the menu or move yourself via amxx commands), two or more players can spawn on a spawn point but one of them will die... I think because they collide :-??
You can try it, hook Ham_Spawn as pre, make the spawning player not solid and see if it works... once he's out of the spawnpoint's range set him as solid.
If that doesn't work, hook Ham_Killed at spawning only, supercede it and set player as alive with flags and stuff...