Maybe this would be nicer to have in a `finally:` block?

One potential use I see for `Timeout`, especially if it has a nice `start`/`stop` interface like this, would be to override it with a more aggressive version (ex, which uses `signal.alarm`) for situations where `socket.settimeout` won't cut it (DNS timeouts is one that comes to mind).