Oi, Leonardo! Como vai?
Agradeço por compartilhar.
Sua solução ficou bem organizada: você separou o menu() da função opcoes(), usou while True para manter o programa rodando e tratou entradas inválidas com try e except, o que deixou o gerenciador mais seguro para quem estiver usando.
Uma dica interessante para o futuro é usar enumerate() para mostrar as tarefas numeradas, facilitando a visualização e até uma futura remoção por número:
for indice, tarefa in enumerate(tarefas, start=1):
print(f"{indice}. {tarefa}")
Esse código percorre a lista tarefas e mostra cada item com um número antes do texto, deixando a saída mais clara para a pessoa usuária.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!