I do believe having someone do paid work / pair with the team for a few days is likely the most valuable, and I do actually think the best people are ok with this because they use it as a way to evaluate a company. But this strategy simply isn't scalable and can take a lot of company man hours without extremely good up front vetting.
I've found coding exercises, of some sort, they don't have to be leet-code-esque, to be one of the very few "put your money where your mouth is" activities to perform. The amount of folks that can speak forever and in-depth about what they've worked on, and then will completely fail at writing for-loops in their favorite language has astonished me. I don't believe live coding exercises have to be adversarial, I believe candidates should be offered a more accessible often if it's too high pressure for them, but I don't believe coding exercises are inherently bad or evil. I do believe there are bad or evil exercises that can be chosen.
A practical coding exercise that requires no more than 8-10 lines of code done live has generally served well in my experience for assessing candidates. I've seen similar pure failure rates from practical exercises as I have from "perform a dfs" style exercises, in the above 60% range.