Dein Quick&Very Dirty-Code hat überhaupt nichts mit der Aufgabenstellung zu tun. Es geht darum, auf einmaligen Tastendruck den Programmablauf anzuhalten, beim wiederholten Tastendruck an der letzten Stelle weiterzumachen. Bei deinem Sketch müsste man die Taste gedrückt halten. Wozu man dann noch zwei Funktionen braucht, ist ebensowenig einleuchtend.
Das würde bei aktiviertem Pullup wohl auch so klappen: if (digitalRead(Pin)==LOW) while (digitalRead(Pin)==LOW); Aber wie gesagt, ist was völlig anderes.