Fixed a bug in with_timeout that caused the wrapped Deferred to be called twice on timeout