Make deferred QueueTask exceptions thread-safe

Instead of using a member variable and method on the QueueTask, register
a locally defined list with the deferred errback (which moves to the
ExecuteContext instead), and don't re-raise if errback completes
without adding the error to the list.

Fixes #70