One thing I found not working there:
If you create own dispatcher based on Executor, you won't be able to shutdown it in the end due to security restrictions. Not sure if that's okay or not, because it isn't related to coroutine dispatchers directly.