Oi, Yago! Tudo bem?
A sua dúvida faz sentido dentro da atividade Avaliando a pontuação de um usuário, porque você manteve a lógica de avaliação da pontuação usando uma callback para exibir a mensagem personalizada.
A sua solução funciona para o objetivo de mostrar a mensagem conforme a pontuação, mesmo sem criar a variável status. A diferença é que, no exemplo da atividade, a função avaliarDesempenho() fica responsável por classificar o resultado e a callback apenas exibe a mensagem; no seu código, essa classificação ficou dentro da função mensagemPersonalizada().
Isso não está errado, mas muda um pouco a divisão de responsabilidades. Uma dica é usar o setTimeout() apenas quando quiser simular uma espera ou comportamento assíncrono; se a ideia for só praticar funções callback, chamar callback(pontuacaoFinal) diretamente já resolve.
Você chegou a testar sua função com pontuações como 82, 60 e 30 para validar os três caminhos da condição?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!