All search results on "coroutine was never awaited" are for people who were either trying to fire-and-forget or actually did forget to await. This is not my case.
I want to use a coroutine the same way I often use generators: I'm creating it here while I have all the variables handy, but I'm not sure yet whether I'll ever need that to be run. Something like:
options = {
'a': async_func_1(..., ...),
'b': async_func_2(),
'c': async_func_3(...),
}
and elsewhere:
appropriate_option = figure_the_option_out(...)
result = await options[appropriate_option]