I suspect the answer to cheating will ultimately be big brother and hiding information from the client.
The server should stop sending positions of undetected enemies - this requires rethinking game engines due to the predictions they perform.
The server should log every single action by every single player (full replays) in perpetuity, train models on it to detect outliers, classify some outliers as cheaters and start grouping them all together in lobbies.
Another idea would be to conduct automated experiments on players at random. Such as manifesting "fake" entities behind cover and measure player reactions - of which there should be none. Spawn bots (from the beginning of the game) that a compromised client (cheats) cannot discriminate from players and have them always remain in cover and gauge player behavior relative to them, despawn them if a [presumably real] player is about to detect them.
It all requires work and imagination which is in short supply in the industry. But given how cheaters kill certain types of games maybe someone will eventually do it.