From experience it's very hard to know how a candidate will perform when hired, irrespective of the hiring process.
A better recruiting model IMO would be to recruit people on short-term contracts (e.g. 6 months) with the contractual agreement that the worker will transition to a permanent job at the end of the 6 months providing their performance is inline with expectation.
I do use code exercises myself, but it's not some n queens problem or something - which tests nothing practical (for the positions in my team anyhow). Rather it's a simple problem, where I look for their ability to test drive code and clean code. The candidate then doesn't get pressured as they might in a live situation. If the code is good we walkthrough it in person.