I believe that this only works because we are using fake timers and the `Error` is thrown in the `clock.tick()` stack. I do not think that it will be possible to catch the error like this because the timeout will execute in a separate stack.