Olá, Matheus, como vai?
Obrigado por compartilhar sua solução com a gente. A escolha do conjunto para lidar com nomes repetidos foi muito adequada e mostra que você compreendeu bem a proposta do exercício e o uso dessa estrutura em Python.
Há apenas alguns ajustes simples que podem deixar o código ainda mais claro e alinhado com o enunciado. O valor "sair" acaba sendo incluído no conjunto antes da verificação, o que pode gerar um item indesejado na lista final. A função criada dentro do laço não chega a ser necessária nesse caso e pode ser substituída por uma lógica mais direta, deixando o código mais legível. Também é possível evitar o uso de sys.exit, já que a interrupção do laço com break atende bem à necessidade e mantém o fluxo do programa mais simples.
Por exemplo, ao verificar se a entrada é "sair" antes de adicionar o nome ao conjunto, você garante que apenas convidados válidos sejam armazenados. Ao final do laço, a exibição da lista mostra exatamente os nomes esperados, sem repetições e sem a palavra de encerramento.
Continue compartilhando suas implementações e explorando diferentes formas de resolver os exercícios. O fórum fica à disposição para trocar ideias e apoiar sua evolução.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!