Async aguardam vs promessas

Não há contras, por si só. Async / Await simplesmente executa uma operação assíncrona. Dito isto, consegue exatamente as mesmas coisas que estavam sendo alcançadas antes com promessas comuns. É quase completamente sintático. Basicamente, faz o código parecer diferente.

Não digo mais limpo ou melhor, porque acho que não. Eu acho que parece diferente. Ele acaba com .then (), mas acho que já é fácil de ler e entender.

O FunFunFunction fez uma boa análise. Se você gosta da aparência do código, use-o. Se não, não.