undone : complete `TimeoutException` instead of `StateError` when an action `timeout` occurs

TimeoutException didn't exist previously, but now that it does this is
more semantic