I added a Executors.newCachedThreadPool() to PluginManager, and it greatly improved performance of async tasks. I'm now wondering - is there any reason to not put this in CordovaInterface and have an app-wide thread-pool?
Other than wanting to give threads a name, I can't think of why you'd ever want to create a new thread instead of using a thread pool...