This just sounds like a threadpool implementation to me. Sure you can brand it async, but it's not what we generally mean when we say async.

Thread-pool is just one implementation under that new async interface. There are other implementations planned which to JS-style async/await (e.g. stackless coroutines) or green threads (stackful coroutines).

Many async implementation are still based on thread pools. rust's tokio, node's libuv uses a thread pool for file I/O.

Before io_uring (which is disabled on most servers until it mature), there was no good way to do async I/O on file on Linux.

Sure async might be implemented by threadpools, but the threadpool itself is not what we usually refer to when we talk about async as a language feature.

e.g. Rust async may be backed by a threadpool, but it could also run single threaded.