ZStatSubPhase::register_start should not call register_gc_phase_start if ZAbort::should_abort() is true. This will cause an unbalanced push and pop behaviour of the phase stack as ZStatSubPhase::register_end stops popping (and sending events) after the aborting has started. This will create an issue if more subsequent sub-phases are added in-between two abort points as the phase stack may overflow.
Simply avoid pushing new phases when aborting has started solves this issue.
Simply avoid pushing new phases when aborting has started solves this issue.