This is conflating two conditions.

I had a detailed comment ready but I managed to lose it.

The short answer is that previously there were `outermost` and `reentered` flags that did different things. `isOutermostEntry` is equivalent to `!reentered`. Replacing `outermost` with `isOutermostEntry` will prevent delegation from being recognized in some cases.

Instead of restoring that condition and creating and deleting the assignment counter for each thread, we can simplify things by just counting forever. 53 bits at 1,000,000 assignments per frame and 60 fps goes for almost 5 years.

Remove creating the assignment counter at the start and deleting it at the end. Either handle `undefined` => `1` when incrementing it, or initialize it when the kernel starts.