None of the credit for this link goes to me. It all goes to David Fowler. This is just a great guide for working with async code in .Net. It is well worth a read-through and could easily be used to help teams refactor their legacy (or not) async code into better standard practice.
https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md