Wie pausiere ich einen teil eines sketches?

Die einfachste Lösung wäre es die Teile als Zustandsautomat abzubilden. Für die Haltedauer würde man dann einfach beim "Programm 1 Automat" die Zustandsübergänge unterbinden.

Alternativ könntest Du auch die durchlaufenden Sachen per Interrupt treiben und "Programm 1" im Loop lassen. Den Loop könnte man mit einer unterbrechbaren Interruptroutine stoppen und wieder starten. Diese Lösung ist allerdings nicht ohne Nebenwirkungen. In der Regel schiessen sich Anfänger mit sowas ins Knie.

Die dritte Lösung wäre um jede Zeile von Programm 1 ein If zu packen. also so:

int16_t line = 1;
void loop() {  
    if (line == 1) {
        // Zeile 1
        line = 2;
    }
    if (line == 2) {
      // Zeile 2
      line = 3;
    }

...


    if (line == 4711) {
      // letzte Zeile
      line = 1;
    }
}

Wenn der Code aussetzen soll würde ich dann einfach

line = -line;

setzen und zum starten ebenfalls

line = -line;

Genaugenommen ist das ein Zustandsautomat wie ich ihn oben beschrieben habe.