Oii Samuel,
Você foi muito além do que a atividade pedia e acabou criando um mini sistema de cadastro completo, inclusive com armazenamento em listas. Isso é excelente, pois mostra que você está tentando aplicar o conhecimento de forma integrada.
Seu código funciona e atende às regras de validação (mínimo de caracteres), mas tenho algumas observações sobre a Experiência do usuário (UX) e a estrutura lógica para você refletir:
1. A conexão entre usuário e senha
No seu código, você pergunta separadamente se a pessoa quer criar um usuário e depois se ela quer criar uma senha.
Imagine a situação: eu respondo "S" para criar o usuário "Samuel", mas respondo "N" para a senha. O sistema vai cadastrar um usuário sem senha? Normalmente, em um cadastro, esses dois dados são obrigatórios e solicitados em conjunto.
Pra resolver isso, você poderia colocar a solicitação da senha imediatamente após a validação do usuário, sem perguntar "Deseja criar uma senha?".
2. Iteração de listas em paralelo
No final do código, você usou range(len(usuarios)) pra imprimir o usuário e a senha correspondente. Isso funciona, mas o Python tem uma função chamada zip() que serve exatamente para "zipear" (juntar) duas listas e percorrê-las ao mesmo tempo.
Veja como seu for final ficaria:
print("\nUsuários cadastrados:")
# O zip pega o item 1 da lista 'usuarios' e o item 1 da lista 'senha' e entrega juntos
for u, s in zip(usuarios, senha):
print(f"Usuário: {u}, Senhas: {s}")
Note também que usei a f-string (f"Texto {variavel}") em vez do .format().
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!