It would be nice if there was a function to wait for tasks and to return the results at the same time, so that you could write something like:
auto [a, b] = co_await coros::wait_tasks(fib(n - 1), fib(n - 2));
return a + b;