Pass timeout errors through onError rather than throwing.

Timeout errors are getting thrown instead of reported to onError.  This is for my happy unit test driver that likes to hear about require() errors directly rather than figuring it out from window.onerror.