For both of these `raise`-es IMO it's better to use the three-clause raise:

```python
raise ConnectionTimeoutError(…), None, sys.exc_info()[2]
```

Which will maintain the stack trace (probably not a huge thing, but nice to have).