Delay ohne delay

Ich habe jetzt mal die bibliothek aktualisiert und das neu programm ausprobiert.
Das faden geht geht jetzt wirklich schneller und die anzeige aktualisiert sich auch, aber den knopf kann ich nur zum anschalten benutzen nicht zum ausschalten während des programmes.
Wenn ich die verzögerung beim faden auf 3 stelle denn braucht es 8 sek um von 0 auf 51 zu faden, diese 8 sek verschieben aber auf dauer alles.
Währe es nicht möglich einfach folgendes einzufügen:

for(int fade = 51 ; fade <= 102; fade +=1) { 
    analogWrite(ledPin, fade);             
    delay(30);    
  }

Das dauert nur 1 sek.
Desweitern wird der fadewert zum schluss nicht auf 0 gesetzt.
Verzei mir bitte meine pingeligkeit.
Ich danke dir für deine Arbeit und weiß deine Mühe zu schätzen.