Implement RecursiveTaskMutex (not performance optimized).
Treat Throwable as a weakly isolated type (allowed to pass between threads).

Although this imposes a hole in the type system, it is necessary for many practical applications.