Exit from cycle needed

urthlight:
The biggest problem is the delay statements but i still need to be able to exit anywhere in the program.

If you use the approach demonstrated in the 'blink without delay' example then your sketch will work without blocking anywhere - this makes it possible to check for as many independent events as you choose, so you can handle button presses, timeouts, serial input etc as they occur. If you take this approach, all you need to do is test for the 'emergency stop' button being pressed and abort the washing sequence.