timeBegin is an unsigned long
It is set to millis() before the servo move
Why would it be 0? Pretty sure it took at least a few milliseconds to get to this point?
Even if timeEnd came immediately after, with the servo move loop being skipped, it should have a value very close to timeBegin, i.e. probably not 0.