Hmmm... I'd rather not repeat too much logging stuff for every timeout.  I wonder if it might be worthwhile to trap the `CancelledError` in the timeout function (since there is probably no useful traceback anyway - the deferred was cancelled there in that function), and instead raise a DeferredTimedOut error that has an annotation like how long the timeout was.

Maybe it can take a reason too, or the code that adds a logging errback can handle that.  What do you think?