Olá Erik, realmente os signals são muito bons, gostaria de adicionar algumas observações sobre:
Na própria documentação: https://docs.djangoproject.com/en/5.0/topics/signals/, existe uma observação para termos cuidado que realmente faz o código bem dificil de entender, eu pessoalmente uso apenas como ultimo recurso, e quando utilizo tento deixar bem explicito que existe um signal para o save. Outro ponto é quando combinados com tasks, não é garantido mesmo no caso do post_save que os dados já estarão persistidos no banco de dados, para esse caso é usado transaction.on_commit
Em resposta a Signals Django - Uma mão na roda
3