Wie war das noch gleich mit KISS?
Dein Programm tut zumindest einmal alles, um nicht übersichtlich und logisch strukturiert etc. zu sein.

Ich glaube, Gotos zählen (meist) eher zu den schlechten Angewohnheiten ...

Erzähl' doch mal, was hast du alles an deinem Mega8 hängen und was bringt dich dazu, deinen RAM nicht vernünftig auszunutzen?

Mein Ansatz wäre folgender: Je nach Anzahl der Eingangssignale würde ich diese entweder getrennt auf Interrupteingänge geben oder aber in einer Schleife pollen (*schauder*)
Dann ist die Sache ganz einfach:
Normalzustand: Gesichert, kein Timer läuft.
Kommt der Entsichern-Impuls, wird der Status (repräsentiert als Enum, Byte oder Whatever) umgeschaltet auf Scharf.
Gleichzeitig wird ein Timer aktiviert und auf deinen gewünschten Timeout eingestellt, evtl. musst du noch eine zusätzliche Zählvariable einführen um deine Wartezeit zu erreichen.
Dann gibt es zwei Möglichkeiten:
1. Der Feuerimpuls kommt, da der Zustand "scharf" ist, zündest du die Rakete, deaktivierst den Timer und wechselst in den Zustand gezündet. Alle Interrupts werden deaktiviert, vor einem Reset macht der ATMega garantiert nichts mehr.
2. Deine Timervariable überschreitet deinen Grenzwert, in der ISR wechselst du zurück in den gesicherten Modus und deaktivierst den Timer.

Diese Aktionen können natürlich auch zur Rückmeldung Ausgangspins entsprechend konfigurieren, ich würde die Ausgänge aber nicht als Variablen missbrauchen, wenn der RAM nicht extrem knapp wird ...

mfG
Markus

Nachtrag: Wie machst du die Schaltung kurzschlusssicher? Wie hinderst du den ATMega daran, durchzudrehen, wenn sich ihm ein Teil X (Ersetze X durch ein beliebiges Flugzeug/Raketenteil) durch den Chip bohrt (Absturz!)
Wie verhinderst du bei eine Lochrasterplatine, dass bei dieser im Falle eines Bruchs nicht die falschen Enden Kontakt miteinander bekommen?