faster test
if there's anything bad happened, we kill the timer, thanks @lulalala

this is discovered by a middleware bug which would raise an
exception before hitting the underlying engine. then the default
timeout would raise a timeout error in the *main* thread,
which is of course not what we want, crashing irb.

see: https://gist.github.com/godfat/5676447#comment-839925