propagate exception on wait() or yieldto() on a task in the exception
state

don't print fatal error for non-root task without exception
handler. this is not fatal and in fact can happen regularly.

small cleanups to yield_until()