I have mostly given up on stopping them. I my testing with local bullshit, they will eventually work out most red herings. And I imagine the bazillion parameter models will do so even faster.
However, you can eat into the token budget, sometimes a lot, by adding sarcasm, aggressive/unusual in-lining or having some "fun" in your naming schema and descriptions (if the language allows them). Same with solutions requiring lateral thinking.
But the best way is to not give the full story easily. Some IDEs may have toggles for stuff, the LLM would have to find in the some config file. Game engines will let you set things up in the GUI a LLM will not easily pick up while injecting the code. Anything outside the code is usually a win.