Threads use more system resources than coroutines so it can be a big deal when you can potentially have thousands of them running.

Yeah I guess also depends on the problem space. For example, dedicated threads doing something versus a bunch of short-lived asynchronous tasks that need scheduling anyhow.

If a bunch of tasks need to be schedule best not to have to reinvent the wheel on that if possible.

If there’s longer running tasks the benefits probably are less noticeable.