Currently threadDelay maxBound causes the event manager's timer manager to
integer overflow when computing the timeout's expiration time. This causes
threadDelay to return essentially immediately. This causes T8089 to fail with
the threaded runtime. See Trac #15158.
This likely only affects 64-bit machines, since the timer manager uses 64-bit
timestamps for expiration times internally, yes delays are simply Ints.
A hacky but simpler alternative to this would be to decide that in
2^64 ns Earth will have long ago been rendered uninhabitable. We could then
instead simply map any overflowing timeout to expire at maxBound :: Timeout.