I have a process instance which runs successfully and reaches a normal end event.
<endEvent id="Process_Completed"/>
However, the process cannot complete as there are outstanding timer jobs. We can see the instance and timer executions remain active in database.
Once a process instance reaches an end event (none, error, cancel, terminate), the execution engine should check and delete all pending timer & message jobs associated with that instance and execution context.