Dart has the tendency to call `exit()` on arbitrary threads. This causes
the assertion to trip. Since this should only happen when Dart is
running the shell in non-interactive mode, we leak the message loop
without proper shutdown.
We should never hit this path on iOS.