vert.x is a bit more than a web server, so to implement a only a web server it could be too much.
What about creating a Kotlin layer on top of Grizzly? Grizzyl is a slim, mature high-performance asynchronous server. It could be a solid base for a “Kotlin” server.
However implementing something like Grizzly from scratch in Kotlin with coroutines could be an interesting excercise, although it would be reinventing the wheel …