Started out the day productively working through more async exception safety for timeouts. But then I realized there's a whole can of worms involving bracket not working like I expected it to. Got a bit side tracked checking if other people expect bracket to work the way it actually does, and [seem to have found a bug](https://github.com/haskell/process/issues/183) in the `process` library. Which is especially concerning since it's just the first place I looked, so what other libraries might have similar problems? So the timeouts feature is seeming a lot less plasible than it did last week. I'll probably defer it until later. The work done on it so far is at least generally an improvement to the code.