Wenn ein Fehler auftaucht würde ich mal über DIESE Zeile nachdenken.
digitalWrite(pumpePin, HIGH); // Pumpe an // Aber welche ???
Davon abgesehen würde ich das anders machen.
Pumpe eine Zeit X (muss man austesten) Laufen lassen.
Dann eine Zeit warten und DANN Sensor abfragen.
Vor den Ablauf eine Variable (boolean) setzen. Nass = false
Dann eine While-Schleife Nass = false
Wenn der Sensor NASS meldet, Nass auf TRUE setzten damit While -Schleife verlassen werden kann, dann schaltet die FOR -Schleife ein weiter, Nass wird wieder False gesetzt, und das Spiel geht von vorne los.
Gruß
Pucki