TextChatService:CanUsersChatAsync() TOS Inquiry

I have a custom text chat system in my game that filters and validates the text before replicating the message to all clients.
It also checks if you’re able to use the chat system with :CanUserChatAsync().

Now, when it comes to CanUsersChatAsync that checks if two players can chat with each other, do I have to check this with every player every single time a player sends a message? My concern is that the function yields, so I cannot use it in real-time without considerable delay, unless I run another thread.

There’s also not much information on how to abide by the terms of service when creating a custom chat to prevent myself from getting banned, which I have many more questions for