Por que a exceção do vácuo assíncrono trava o aplicativo, mas do tarefa assíncrona é engolida

Entendo que umasync Tasks exceções de @ podem ser capturadas por:

try { await task; }
catch { }

enquanto umasync void não pode porque não pode ser aguardad

Mas por que é que quando o asyncTaref não é esperado (assim como o asyncvazi um) oException é engolido, enquanto ovazim falha no aplicativo?

Chamador: ex();

Chamad:

async void ex() { throw new Exception(); }
async Task ex() { throw new Exception(); }

questionAnswers(3)

yourAnswerToTheQuestion