Sehe ich das richtig, das WAIT X einfach nur viele NOP in den AVR schreibt?
Es gibt ja Programme, in denen man nur eine gewisse Anzahl von verschiedenen Wartezeiten hat. z.B. WAITMS 150/500/1000, diese aber oft einsetzt. 150 nach Tastenabfragen, 500 und 1000 für LEDs.

Wenn meine erste Vermutung richtig ist, würde der flash ja irgendwann fast nur noch mit NOPs beschrieben sein. Wie wäre es denn, wenn man einfach wie hier jetzt drei SUBs erstellt und an den jeweiligen Stellen dort hinspringt? Sprungbefehle verbrauchen ja nicht so viele Programmzeilen wie sinnlose NOPs.
Wenn es absolut Zeitkritsche Anwendungen sind, muss man halt zuvor noch die Zeiten für die Sprünge abziehen, aber ansonsten würden ein paar µs ja nicht viel ausmachen.

PS: Mark von MCS empfiehlt an Stelle von WAIT 1 WAITMS 1000 zu verwenden, weil das weniger Programmspeicher belegt.