I also don't understand what do you mean by "concentrated effort". Different people have different requirements, and ideas, and I don't think there's one fit-all solution.
I was looking for some solution which provides more or less unified interface to async tasks. Either IO or simple function invocation. The best solution so far I figured is some composition of mio for IO, eventual for futures and coroutine for coroutines as futures backend. And in fact I might've wanted to hear others stories on how they did it. By saying "lost a bit" I meant that there are multiple crates with crossing capabilities, with no obvious way to choose one over another. So my question might look silly/murky.
A complication with async I/O is that you cannot easily mix different event loops within one thread, so the entire async stack running in a thread has to be based on one library that dispatches events. So there's going to be pressure towards vertical async "ecosystems". Maybe there will be an eventual winner that satisfies most needs.
My question now really looks stupid to me. Like I asked "I wanna do something cool! I dunno what! Help me!". Or maybe I just wanted some generic conversation.
As of async I/O and tasks, they're relatively composable as long as you have I/O event loop on dedicated thread and some separate task pool, so that I/O events are converted into tasks and then executed on a general basis.