I have a multiple approval state machine workflow on request list. To solve timing issues I use "commit pending changes" activity after "change permissions" and "update item" activities. Sometimes I have errors while "commit pending changes" activity and I must cancel workflow and restart it. Many users don't like it, of course, but I can't find another solution yet.
Now I have another problem. My workflow is stopped on "commit pending changes" activity. Workflow state is "running", not "Error" but I think that It will be on "Error state". Could I wake up this workflow instance on this activity or better I must cancel it and not spend my time.
I had similar issue before where the problem was not with Commit pending changes itself. It could be actions before it.
Best way is to check workflow history and see where it failed.
Also i personally had very bad experience with using State Machines, i usually use Switch and maintain a custom State variable .