Quel projet en perspective. J'ai quelques "remarques" même si ç'en est pas vraiment car c'est ton projet .
Tu parles de watchdog analogique, mais les MCU possèdent déjà un watchdog, pourquoi ne conviendrait-il pas ? En soft et notamment lorsqu'on utilise des OS où il est pratiquement impossible de s'assurer que toutes les tâches tournent avec un seul watchdog, on utilise des mécanismes logiciels. Il y a plusieurs façons de procéder, mais le principe c'est d'avoir un timer logiciel par tâche ou fonction à surveiller. Le reset du vrai watchdog se fait en un point unique, généralement dans la boucle principale, conditionné par un flag. Si l'un des timers arrive à échéance alors le flag est positionné et le reset du vrai watchdog n'est plus effectué. On peut aussi forcer directement un reset, mais certains micro donnent la possibilité de connaître la cause du reset dans un registre, ça peut servir au redémarrage pour prendre une décision particulière.
Si tu passes sur une architecture "multi-cpu", il faudra veiller à blinder la communication avec parité/checksum, acquittement et répétitions. Par expérience professionnelle ce n'est jamais simple à blinder correctement lorsqu'on arrive dans des cas éloignés du nominal et/ou avec des longueurs de câble (Prusa en a fait les frais sur son xLCD). Du coup tu te rapproches d'un klipper en séparant les fonctions, ça pourrait être une autre approche qui te simplifierait ces aspects pour te laisser te concentrer sur le code utile. Ca a l'avantage par exemple de rendre ton caisson compatible avec n'importe quelle imprimante qui tournerait sous kilpper.
Une autre suggestion qui va pas te plaire : vu où tu en es pourquoi pas changer carrément de carte mère au profit d'une carte mère 32-bit "moderne" ? Avec ça tu aurais une toute nouvelle machine, silencieuse comme une MK3 et rapide comme une MK4. En bonus, beaucoup de ressources pour ajouter toutes les fonctions que tu veux.
Je pense que tout bon développeur passe par là, on se lance dans un projet passionnant, on y passe un temps fou, des nuits blanches... Soit on arrive au bout parce que c'était un vrai projet utile, soit on s'arrête presque à la fin parce que c'était juste pour le fun. Quand j'étais ado j'ai passé un temps fou à concevoir un annuaire pour les VHS de mes parents, avec un PIC et un LCD alphanumérique. Je suis arrivé presqu'au bout, mais le micro était plein et n'avait plus assez d'espace pour stocker toutes les chaines de caractères. Mais j'ai appris le fonctionnement des écrans LCD et des claviers matriciels, joué avec de la compression pour le texte etc...
Et c'est bien là l'essentiel => L'important n'est pas de pouvoir réutiliser le travail effectué, mais surtout de pouvoir réutiliser les connaissances et l'expérience cumulées lors de ces projets, pour développer les projets suivants en repartant sur de meilleures bases encore.