What is modern async programming? I/O multiplexing with the select system call came out in 1983 and async programming has been exactly the same ever since.
Edit: I misunderstood your 16-bit comment. Yes, in the 80s and 90s async was popular like it is today because processes were expensive. Even on 32-bit. So multiplexing was a good strategy whether in a preemptive OS like SunOS or a cooperative OS like 16 bit Windows. Then Java and various web server architectures came along and people got comfortable with threads, and the OSes got relatively efficient with them.
Edit: I misunderstood your 16-bit comment. Yes, in the 80s and 90s async was popular like it is today because processes were expensive. Even on 32-bit. So multiplexing was a good strategy whether in a preemptive OS like SunOS or a cooperative OS like 16 bit Windows. Then Java and various web server architectures came along and people got comfortable with threads, and the OSes got relatively efficient with them.