I actually like to give a problem that we just recently solved as a takehome test. It's by definition representative of what I need them to know, and since I know "an answer" it helps to see if they come up with a far more elegant or more kludgy way of doing it.
As for timed on-site coding...