I had a look at your process definition, but i can't see nothing out of the odd.
I would expect that even if you have 'stalled' process instance, you have entries in the act_ru_job table for sure (cause the first step is an async service task).
Can you post the content of the ACT_RU_EXECUTION row of such a stalled process? And you're absolutely sure there is no entry in the act_ru_job table?
Something in the logs?
"For the version 5.12, how much do you estimate the cost to upgrade to a recent version ?"
Depends on how much logic you have of course. But normally, the upgrades for Activiti are pretty smooth.
Only if you have changed the engine internally (plugging in custom stuff, overriding others, etc.) it could be more work.