Originally Posted by Dr!fter
This appears to fix it.
HookEvent("teamchange_pending", TeamChangePending, EventHookMode_Pre);
public Action:TeamChangePending(Handle:event, const String:name, bool:bDontBroadcast)
new client = GetEventInt(event, "userid");
new team = GetEventInt(event, "toteam");
SetEntProp(client, Prop_Send, "m_iTeam", team);
Confirmed to be working. The other plugin did not though.
Those who are too lazy to compile can grab it here