Ok, actually, it does look like `start`/`stop` aren't being called around the socket read… I'm not 100% sure what the best way to make this clear in the API of `Timeout` would be… but it should definitely be made clear somewhere. Some thoughts:

- Remove start/stop and instead use `connect_start = timeout_obj.get_time()` + `timeout_obj.get_read_timeout(connect_start=connect_start)`
- Remove `stop()` and have `start_connect()` and `start_read()` — this would make the lifecycle more obvious (and, actually, I think I like this one more than the previous suggestion)