Olá, Luciano, como vai?
Sua solução atende corretamente ao que foi proposto na atividade. O uso de um conjunto para armazenar os nomes resolve de forma direta o problema de duplicidade, e o laço com condição de saída baseada na digitação de "sair" está bem aplicado dentro do contexto do exercício.
O código está claro, funcional e coerente com o conteúdo do capítulo, mantendo uma leitura simples e objetiva. A separação inicial com a função para exibir o subtítulo é válida e não interfere na lógica principal, além de deixar a execução mais organizada.
Obrigado por compartilhar sua solução. O fórum segue à disposição para novas dúvidas ou para continuar trocando experiências ao longo do curso.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!