Hilfe bei Unterbrechung Lichtschranke bei Rolltor/Kabine

Das sieht schon viel besser aus!
Der richtige Weg ist schon sichtbar!

Ein paar Sachen müssen noch anders.

In einem solchen state-Case, solltest du keine Schleifen verwenden.
Und wenn, dann nur sehr kurz laufende.
Schleifen blockieren genau so wie ein Delay.

Und darum dreht es sich ja, diese Blockaden raus zu bekommen.

Beispiel:

case unterbrechung:
while (status_lichtSchr == HIGH) {
digitalWrite (powerMot, HIGH);
}

Hier ist keine Endlagenabfrage Bedienelementabfrage drin/möglich.

Nein, die Schleife muss weg.
Besser die ganze Funktion Loop() 100Tausend mal pro Sekunde durchlaufen lassen, als da drin eine Schleife setzen.

Einiges Anderes, würde ich in den Bereich Kosmetik einordnen.
z.B.
Suche mal nach "C++ enum switch case"

const int seilSch = 12; // Seilzugschalter
const byte seilSch = 12; // Seilzugschalter


Leider fehlt mir heute die Zeit das vollständig mit dir durchzugehen.

Aus dem Bauch:
Vermutlich würde ich den Automaten in 2 aufteilen.

Einer für die übergeordnete Ablaufsteuerung, und einer für die konkrete Motorsteuerung.