Generally speaking, high quality people won't take a short-term contracting gig. They are probably working elsewhere and don't need that level of uncertainty; they're looking for something better, not just anything.
Best people I know don't even give or take interviews.
They generally have a long history of awesome projects they have worked on, and they've built years of reputation through working on such projects.
And they just don't pick up any other project in any other company. They are pretty much clear about the best kind of problems they want to work on, and they don't wish to waste their time other than that.
Every time a company boasts about having a process to hire only 'A' candidates I chuckle. The 'A' or even 'B' candidates aren't even up for hire. The interview process begins with 'C' people.
Generally speaking, most programming position don't need to be filled by high quality people. There are lots of smart, reasonably competent programmers out there, but who don't have years of experience on their CV, whom are eager to learn and would happily take a day or two off for a chance to work at an interesting company.
Truly high quality people are generally known by their reputation and are headhunted rather than expected to answer job ads.
I'd hope that by that point I'd have sold them on my company enough that they really thought it was better.
Also, I don't think it needs to be a long gig. Maybe even just a day, which isn't much longer than the gauntlet of technical interviews some companies will put you through. Even that short period should be enough to see if someone works well.
Doing a day's contracting elsewhere would violate my current employment contract. (And I think strict adherence to the letter of the rules will be reasonably common among good developers)