Changes to make wake-up have a executor target.

Waking up needs an executor because pushing to the work stealing queues
can only happen from a single thread, therefore when a processor is awoken
its easiest to make it go to the executor of the awaker.

Other fixes as well (I think).