Specifically `An update to * inside a test was not wrapped in act(...)` is not logged when a prior update threw. 

<details>
<summary>failing test (#21766)</summary>

```js
// @gate __DEV__
it('warns if a setState is called outside of act(...) after a component threw', () => {
  let setValue = null;
  function App({defaultValue}) {
    if (defaultValue === undefined) {
      throw new Error();
    }
    const [value, _setValue] = React.useState(defaultValue);
    setValue = _setValue;
    return value;
  }

  expect(() => {
    act(() => {
      render(<App defaultValue={undefined} />, container);
    });
  }).toThrow();

  act(() => {
    rerender(<App defaultValue={0} />, container);
  });

  expect(() => setValue(1)).toErrorDev([
    'An update to App inside a test was not wrapped in act(...).',
  ]);
});
```
</details>

What I noticed is that in https://github.com/facebook/react/blob/27c9c95e23ddedb9163373950e364dd62038f6c0/packages/react-reconciler/src/ReactFiberWorkLoop.new.js#L2855-L2865
the `executionContext` will still equal `RetryAfterError` when we would expect a "missing act" warning.

"missing act" warnings are working as expected with legacy roots.
const NESTED_PASSIVE_UPDATE_LIMIT = 50;
let nestedPassiveUpdateCount: number = 0;
 If two updates are scheduled within the same event, we should treat their
 event times as simultaneous, even if the actual clock time has advanced
 between the first and second call.
let currentEventTime: number = NoTimestamp;
let currentEventTransitionLane: Lanes = NoLanes;
 Dev only flag that tracks if passive effects are currently being flushed.
 We warn about state updates for unmounted components differently in this case.
let isFlushingPassiveEffects = false;
export function getWorkInProgressRoot(): FiberRoot | null {
  return workInProgressRoot;
}
export function requestEventTime() {
  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {
    
    return now();
  }
   We're not inside React, so we may be in the middle of a browser event.
  if (currentEventTime !== NoTimestamp) {
    
    return currentEventTime;
  }
   This is the first update since React yielded. Compute a new start time.
  currentEventTime = now();
  return currentEventTime;
}
export function getCurrentTime() {
  return now();
}