It looks like you're setting pump_tim_cur_millis every time loop() is run. And then immediately you check to see if 2000 milliseconds have passed. I don't think this is the right place to set pump_tim_cur_millis.
It looks like pump_tim_cur_millis is a time stamp that is supposed to contain the time that the pump was turned on. Maybe you should move that line to the place where you turn on the pump.