How to avoid cascading async functions?

Thank you, @j-f1, for explaining why my tinkering is a risky anti-pattern.

But, is there really no practical solution for this that can be used when the sync world meets the async world in real life?

I have also asked the same question here.