Coroutines aren't great, even C++26 is explicitly avoiding them for its foundational concurrency model.

In any case a good concurrency library doesn't need more than C++14.

In my understanding, senders/receivers is a more generalized concurrency model, but it has been designed to play well with coroutines.

Is it? Senders/receivers is based on NVidias experience using them on CUDA.

Naturally I haven't followed them that much, given how far away C++26 is from being usable for portable code.

Compilers are finally getting good enough with C++20 support for updating the default version.