React version: 18.3.0-next-3ba7add60-20221201

Hard to reproduce.

In Next.js, in rare cases, and only after a fast refresh, the ref object when using forwardRef is simply `{}`.

This leads to the `TypeError: can't define property "current": Object is not extensible` error when used with `useImperativeHandle`.

```tsx
function Parent() {
  const carouselRef = useRef<any>();

  return <Suspense><Carousel ref={carouselRef} /></Suspense>
}

const Carousel = forwardRef((props, ref) => {
  if (!('current' in ref)) { debugger; }
  const thing = use(aPromise);
  return ...;
});
```

![Screenshot 2023-03-17 at 18 49 21](https://user-images.githubusercontent.com/5406212/225981809-22f575fa-0ec7-4f94-ae23-bffc8bf7c4dd.png)

In `updateImperativeHandle`, the ref is already an empty object.

![Screenshot 2023-03-17 at 19 13 13](https://user-images.githubusercontent.com/5406212/225985622-b8512a61-3a6b-4958-b63f-277219d4c816.png)

I haven't investigated it further yet, the stacktraces are quite hard to follow.
workInProgressRootExitStatus === RootSuspendedWithDelay ||
      (workInProgressRootExitStatus === RootSuspended &&
        includesOnlyRetries(workInProgressRootRenderLanes) &&
        now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)
    ) {
       For
       bei
      if ((executionContext & RenderContext) === NoContext) {
        prepareFreshStack(root, NoLanes);
      } else {
         TOD
         the 
         sel
         it 
      }
    } else {
       Eve
       opp
      workInProgressRootPingedLanes = mergeLanes(
        workInProgressRootPingedLanes,
        pingedLanes,
      );
    }
  }
  ensureRootIsScheduled(root);
}
function retryTimedOutBoundary(boundaryFiber: Fiber, retryLane: Lane) {
   The boundary fiber (a Suspense component or SuspenseList component)
   previously was rendered in its fallback state. One of the promises that
   suspended it has resolved, which means at least part of the tree was