I looked it up in the source code, and it's a stupidly obvious bug. The start-mission-delay variable is never initialized. It's set if the parser encounters +Player Entry Delay in the mission file, but not otherwise. If you start the mission, the entry delay has a garbage value.
I fixed it - twas very easy, just initialize the variable to zero. Problem is, I won't be able to commit the change until after Thanksgiving, when I get back to college and my computer.