SFC step error handling

I’ve got two questions on sequential function chart error handling:
When the SFC step throws an unhandled exception, what is the exception object called in onError?
When a step fails, how exactly does the chart handle object creation?

The second is perhaps the more interesting case. I’m uploading two example charts that contrast the oddness. Both set out to do the same thing: keep randomly assigning an int to x until x==0, but only one will ever finish. The simpler version will never change the value of x.

Are steps transactional, such that the chart dict is not modified unless the step completes properly?
FailsRandomly_BulldozeProperly.xml (2.79 KB)
FailsRandomly_OftenDies.xml (1.42 KB)