"Don't replace platform/native threads with virtual ones, replace tasks (without further explanation) instead"?!
Combine that with the fact that they chose to implement the scheduler in Java instead of C(++) and you're set for performance problems.
Remember that NIO took from 1.5 to 1.7 to be usable/performant and that was native!
Edit: Finally figured out why: https://news.ycombinator.com/item?id=39010648