Olá Alan.
Seu código está correto e atende muito bem à proposta da atividade de trabalhar com funções de callback e atraso na execução utilizando setTimeout().
O que acontece nesse exemplo é que a função responderUsuario() é executada imediatamente, exibindo a mensagem:
Olá, Camila! Estou processando sua pergunta...
Em seguida, o setTimeout() agenda a execução da função callback para acontecer após 3 segundos. Durante esse tempo, o JavaScript não fica bloqueado; ele continua livre para executar outras tarefas.
Após os 3 segundos, a função exibirResposta() é chamada através do callback, exibindo:
Aqui está a resposta para a sua pergunta, Camila!
Esse exercício é uma ótima introdução ao conceito de programação assíncrona em JavaScript. Entender como uma função pode ser passada como argumento e executada posteriormente é fundamental para trabalhar com eventos, requisições a APIs e recursos mais avançados como Promises e async/await.
Parabéns pela implementação. Seu código está organizado, legível e demonstra que você compreendeu bem a utilização de callbacks com atraso de execução.
Avise qualquer dúvida.
Bons estudos.