Что компилятор делает с async, почему async void — зло, ConfigureAwait, ValueTask, отмена через CancellationToken, IAsyncEnumerable. Классические ошибки: .Result, забытые await, параллелизм через Task.WhenAll и как не положить пул потоков.