Error-handling improvements.

* Stuck on weird issue where timers created in certain contexts do not fire
  until a timer created in a different context fires.