Overview:
A workflow ends before it gets to the actual end of the workflow.
Root Cause:
When a workflow goes into a Join step, all of the steps leading to it must be completed. If there are multiple Decision Steps, some of which do not get completed, all of the steps going to the Join Step cannot complete. When the last user completes their task, the join does not continue on as it still has other un-executed inbound paths. Also, there are no pending work (outstanding tasks) to execute, so the workflow exits.
Solution:
Modify the workflow to have a separate Join for each set of Decision Tasks.
Related Documentation:
Vault Workflow Documentation: Join Step Configuration