Looks correct to me as wel; I would use unsigned longs for watertime and waittime ![]()
Your relay shield is clicking, so 12V should go to the pump; but a multimeter will not be able to measure quickly enough if the code at high speeds toggles between on and off.
Maybe a power issue; does your arduino go through reset cycles? Add a Serial.println("Starting") in setup() to check or observer the pin13 led (three quick flashes indicate a reset). Although this would not explain why the first cycle is OK.
Can you show a schematic (a photo / scan of a handdrawn one is fine)? Usually relay boards have a jumper; it's my understanding that it needs to be removed; I don't have a relay board so can't say for sure.