When parsing the process definition, timers are read before all events are read.
This leads to "create-timer" actions being added to the node-enter events BEFORE your own actions. This doesn't make a lot of sense, normally you want your own actions being executed first and the timer created afterwards. From the engine perspective, it doesn't make any difference (since the timer is started not before the transaction commits), but with that behavior you could e.g. calculate due dates on the node-enter event (before the time is created).
This is located in the JpdlXmlReader, method "readNode", these two lines:
See Forum on the discussion how to solve it.