Now imagine that I've applied to five companies. Each of those five companies has given me an "audition," something that I can take a week to do. I necessarily have to do this in my free time -- I can't very well do it at my current job! -- and not only do I have to solve your problem, but I generally have to do it within some sort of constraint that you normally have, whether that's your codebase or your language or whatever. I'm going to spend a significant portion of that time simply getting up to speed with that constraint. Maybe I have to install Ruby or I have to install Symfony or I have to study the documentation for Twilio. Who knows?
I've never yet had an "audition" like this that didn't require me to sign an NDA, then install that company's codebase and work within that codebase. And I've rarely been able to do this in one or two nights of work. Usually one night of work is spent simply installing it, the second night studying what's going on, and then the third, fourth, and possibly fifth nights actually fixing the problem, testing it, and making sure it's good enough to submit.
It's a lot of work to ask me to do, even if you're paying me as a contractor, because again, I'm not looking to be a contractor. I'm looking to be a full-time employee.
I want to solve your real-world problems much more than I want to answer academic questions, but at the same time, you have to respect my time as well. I don't want to waste your time by not giving you enough data to make an educated decision about hiring me, but you should also not waste my time by giving me a task that takes up my entire free time for a week.
There's a happy medium here. I don't know what it is, exactly, other than letting me solve the problem my own way with my own code and my own tools, but if I do that, then it's not "something you would give your employees right now if they weren't so busy," right? Maybe.
The rest of it is fairly spot on, I guess.
Just my two cents.