Added a new console option called "tf_voice_command_suspension_mode" with the following options: 0 = None | 1 = No Voice Commands | 2 = Rate Limited (default)
The rate limiting seems to be triggered when "BHaveChatSuspensionInCurrentMatch()" is true, which then follows a simple token bucket of 5 voice commands every six seconds. (per tf_voice_command_suspension_rate_limit_bucket_count
and tf_voice_command_suspension_rate_limit_bucket_refill_rate
)
The "BHaveChatSuspensionInCurrentMatch()" check also applies for in game chat, but what criteria to have a chat suspension is exactly unknown, aside from being a F2P.