async and await are not runtime features up to .NET 10. They are a compiler rewrite. When you mark a method async, the C# compiler removes the method body, moves it into a generated type, and replaces the original method with a few lines that create and start that type. Everything else, the scheduling, the exception handling, the value that eventually lands in the returned Task, is ordinary code you could… [read more]