There are many post here about issues with terminated workflows and how to avoid them (or not). I have had many of these issues myself due to email failure or SQL lookup failures. Many are not predictable and you can't allow for every possibility in your workflows using Try-Catch and other methods. We can be left with lengthy workflows that been terminated due to a minor error and we have no alternative but to restart the whole process.
How about, instead of Terminating with no solution, Workflow Suspends?
This new Suspend status would not terminate the workflow but would pause it and allow an administrator to fix the issue before re-trying.
It may be just a matter of changing a variable (e.g. character mismatch in SQL lookup) or correcting an email issue. Then the administrator could select retry and the workflow would continue.
As I see it a Suspended workflow would need an option to change settings or variables using a list of current tokens and then a selection of Re-try or Terminate to continue the workflow.
Suspend would be a means of changing variables and would not be for modifying or republishing workflows.