nmap dev here.
Nmap is already asynchronous, as you described multiple requests are multiplexed (cf select(2), epoll(7), kqueue/kevent depending on your platform...)
The core difference between nmap and zmap is that the latter is stateless. Which allows a much higher throughput, but also prevents from applying some smart detection mechanisms. Thus, both tools are complementary, and no, there is no work being done to make nmap stateless.