Also this problem is exasperated in Apex Legends because it is a free game that is also popular in Asia.
When you move them to a cheater queue, they don't know. They keep playing, none the wiser. It's infinitely better for everyone. The cheater still gets to play, and the non-cheaters aren't affected as much because the cheater doesn't just keep coming back.
The complexity in your app is that you need to have multiple matchmaking queues, which you probably already support due to skill tiers. So is it really that difficult to add more matchmaking queues for the cheaters?
You need some kind of dynamic ranking of "toxicity" (in this case cheating) match user with other of similar toxicity.
When 99.9% of the people you get matched with are cheaters (many of which might be quite obvious), it's not that hard to figure out that your account was probably shadow banned. Some cheaters might not care, but it's certainly not hard to figure out.
Friends were able to join my game, but not I theirs, and the "available games" list was way smaller.
https://nexus.leagueoflegends.com/en-us/2017/01/ask-riot-ban...