Fixing the probem breaking out of a parallel activity within an optional activity. Rather than trying to fix it in the web layer, I've changed the progress engine so that as it processes up the hierarchy of complex activityes, it sets any completed complex activities to be the previous activity. Then the web layer works correctly.