Andrei is correct, the spark channels should be in the crank link list, to which link requests get issued when a stall is detected. However, as the OP noticed, if the stall occurs while a spark is active (during dwell time, before end angle), the spark pin remains stuck at active level. This is true even if the spark channel is in the link list - the spark gets re-initialized, but the initialization code leaves the pin state untouched. It looks like:

A small patch to the spark init eTPU code, which sets the pin level to the inactive state, results in better behavior:

I don't know yet how to work around this without patching the eTPU code. I had originally though the max dwell time should kick in and shut off the pulse, but it turns out given the channel mode being used, if the TCR2 counter (angle) never reaches the spark end angle in this case, max dwell time never kicks in.
-john
John Diener