The code was posted by afkuser. I started from that adding server replies and client's wait for reply.
Without a send-reply scheme, the transmission is fast since probably the clients have just to fill a buffer and go on.
But if you add replay/ack the speed is unacceptable.
I actually liked the usage of tasks in LuaRT and hoped that they were competitive w.r.t. Python multi-threading...
By the way, I just retried an example based on net.select() instead and it looks as I'm able to manage interleaved accept and message receive/reply in the server with good performance on latest LuaRT 1.8.x with 10 or more clients and hundreds of messages by each of them.
It's not clear to me why the task/async approach was so slow, but at least I have a solution with select that I can experiment in my applications.