dewaldo 
Mir gefällt prinzipiell dein Entwurf, trotzdem habe ich zwei kleine Einwände.
Vorteile deines Entwurfs:
- Ein vorhandenes Gerät kann weiterhin für den gewünschten Zweck genutzt werden.
- Es muss ausschließlich konfiguriert werden, Programmierung ist nicht erforderlich.
Nachteile deines Entwurfs:
- Die beiden Mikrocontroller müssen für diese Funktionalität kommunizieren, das Kommunikationsmedium könnte aber ausfallen.
- Es sind zwei Geräte erforderlich, wo ein geeignetes genügen würde - etwas höherer Energieverbrauch.
Aus technischer Sicht würde ich den Einsatz eines Gerätes (bspw. Shelly Plus 1PM) bevorzugen und diesem ein kleines Skript einverleiben.
Ein solches Skript ist nicht aufwändig, muss allerdings erstellt werden. Vielleicht gibt es dafür auch eine Vorlage.
Skriptidee:
Das Signal am Switch-Eingang des Shelly ändert sich -> Ereignis -> der Eventhandler registriert dies und arbeitet wie folgt:
Bei ON wird der Zustand einer Error-Variablen geprüft.
Beinhaltet diese true, geschieht nichts weiter, weil die Pumpe vorher zu lange lief.
Andernfalls wird der Ausgang auf ON geschaltet und ein Timer (für 20 Minuten) gestartet,
Bei OFF wird der gestartete Timer beendet, der Ausgang auf OFF geschaltet und Error nicht verändert..
Mit Ablauf des Timers wird die Variable Error auf true gesetzt und der Ausgang auf OFF geschaltet.
Um das Ganze ausfallsicher zu gestalten, wird mit jeder Änderung von Error dessen Wert in den nichtflüchtigen Speicher (NVS) kopiert - hier per KVS.
Dieser Wert wird mit jedem Skriptstart, regulär nach einem Stromausfall, vom NVS in die Variable Error kopiert.
Ich wäre evtl. bereit, ein solches Skript zu erstellen, genügend Muße meinerseits dafür vorausgesetzt.
Mein Motiv dafür könnte ein Einsatz für meine Zisternenpumpe sein. 
Edit:
Eine Kommunikationsschnittstelle zum rücksetzen von Error auf false ist vorteilhaft und implementierbar.
Auch die Dauer für den Timer ist per KVS konfigurierbar.
Edit2:
Statt des Switch-Eingangsereignisses sollte hier ein Ereignis der Leistungsänderung genutzt werden, ich vergaß dies vorübergehend.
Steigt diese Leistung über einen festgelegten Schwellwert, wird der Timer gestartet.
Fällt diese Leistung unter einen festgelegten Schwellwert, wird der laufende Timer beendet.
Ansonsten wie oben.
Die Schwellwerte können bei Bedarf ebenfalls per KVS konfigurierbar gemacht werden.