### Website or app

https://codesandbox.io/s/forwardref-context-change-did-not-render-lpdk4t?file=/src/index.js

### Repro steps

1. Goto https://lpdk4t.csb.app/
1. Start profiling
3. Enter "a" into the input
4. Stop profiling
![forwardRef-did-not-render](https://user-images.githubusercontent.com/12292047/164915101-f28f305a-2c51-4b89-8515-da073e5551c9.png)



### How often does this bug happen?

Every time

### DevTools package (automated)

_No response_

### DevTools version (automated)

4.24.3-46a98cff2

### Error message (automated)

_No response_

### Error call stack (automated)

_No response_

### Error component stack (automated)

_No response_

### GitHub query string (automated)

_No response_
and give React time to process the Fast Refresh delay.
    untrackFibersSet.add(fiber);
     React may detach alternate pointers during unmount;
     Since our untracking code is async, we should explicily track the pending alternate here as well.
    const alternate = fiber.alternate;
    if (alternate !== null) {
      untrackFibersSet.add(alternate);
    }
    if (untrackFibersTimeoutID === null) {
      untrackFibersTimeoutID = setTimeout(untrackFibers, 1000);
    }
  }
  const untrackFibersSet: Set<Fiber> = new Set();
  let untrackFibersTimeoutID: TimeoutID | null = null;
  function untrackFibers() {
    if (untrackFibersTimeoutID !== null) {
      clearTimeout(untrackFibersTimeoutID);
      untrackFibersTimeoutID = null;
    }
    untrackFibersSet.forEach(fiber => {
      const fiberID = getFiberIDUnsafe(fiber);
      if (fiberID !== null) {
        idToArbitraryFiberMap.delete(fiberID);
         A
        clearErrorsForFiberID(fiberID);
        clearWarningsForFiberID(fiberID);
      }
      fiberToIDMap.delete(fiber);
      const {alternate} = fiber;
      if (alternate !== null) {