async void vs async Task em C#: quando cada um é correto
async Task é o padrão e async void é a exceção. Use async void apenas para handlers de evento, handlers de nível superior em loops de mensagem e um punhado de callbacks de framework que exigem assinatura void. Em todo o resto, async Task vence em exceções, composição e testabilidade.