You only set 'startMillisWait' at the end of the previous wait. That means the value you pass to 'wait()' is not how long to wait from NOW, but how long to wait from the last time you were done waiting.
You should put "startMillisWait = millis();" at the beginning of 'wait()'.