See about replacing internals with `FuturesUnordered` and `embrio::Executor`
FuturesUnordered, when synchronized with a Mutex should be able to replace all of the spawn queue, poll queue, task registry, and wakers provided to the tasks themselves.
embrio::Executor covers almost all of the usecases, but has the notion of "supported/unsupported platforms" due to its waker implementation. Perhaps it can be made more generic, similar to our Wake/Sleep traits?
Edited by Josh Robson Chase