I somewhat agree on having "auditions" or at least a quick try before you buy, if you will, but at least pay a decent wage.
What would work best imo is to technically vet the candidate early on and over the phone. Perhaps a 30 minute pair programming session done in stypi where you're both working on some code. After that do a group skype chat session with some other teammates and the candidate to see how well a group conversation goes. Nothing extreme just a 30 minute to an hour pow wow about the job, the company, etc.
If the candidate is still in the running then bring them into the office, if you actually have a physical office, and give them a couple hundred dollars to work on some code for 3-4 hours. See how they fit with the team and how well they perform in person. You'd be surprised at how quickly you can get a feel for someone. It doesn't need to take weeks. If you're remote you can do the same thing, in fact it'd be much cheaper without having to cover the candidates travel expenses.
So how many people would even make it past the first round? 10%? lower? After that you've got a nice number of qualified candidates and plenty of opportunities to weed them out before anyone wastes their time.