Thanks for the idea. I will check it soon and add to this post.
But for now you nicely spotted the phenomenon that I briefly described in the introduction. Unlike JavaScript, you cannot temporarily release a thread in Java until it finishes its task. It will wait. Asynchronous execution does not really exist in Java, instead Java has multithreading. A callback in Java implies a blocked thread. If a Java application performs concurrent I/O operations, network requests, database queries it cannot outperform equivalent single-threaded application in JavaScript.
Let's see if Netty is better than the standard API