This new zone has nothing to do with NgZone.  Move it into its own class.  Maybe call it AtMostOneMicrotaskZone().