Minor design note: would be nicer to have this as a method on `Timeout`. Would make overriding easier in tests, and in my experience with this sort of thing, generally makes things nicer.