React version: 18.2.0
Next version: 13.1.1

## Steps To Reproduce

1. Suspend using a (fake) promise in a client component in app dir (next)
2. Try to useState after the use() call

````ts
'use client';

import { use, useState } from 'react';

const testPromise = new Promise((resolve) => {
  setTimeout(() => {
    resolve('use test promise');
  });
});

export default function Page() {
  use(testPromise);
  useState(0);

  return <h1>Test</h1>;
}

````

Link to code example:
https://codesandbox.io/s/github/xiel/app-playground/tree/suspense-error/?from-embed=&file=/app/page.tsx

## The current behavior

Suspending for a promise in a client component and using state/reducer after results in errors during hydration:

```
react-dom.development.js?9d87:94 Warning: An error occurred during hydration. The server HTML was replaced with client 

react-dom.development.js?9d87:94 Warning: You are accessing "digest" from the errorInfo object passed to onRecoverableError. 

on-recoverable-error.js?eb92:17 Uncaught Error: Should have a queue. This is likely a bug in React. Please file an issue.
```

## The expected behavior

No error during hydration.

- First execution of component function: user functions are double invoked
   - Second execution of component function (in Strict Mode, during
     development): user functions are not double invoked.
  
   This is intentional for a few reasons; most importantly, it's because of
   how `use` works when something suspends: it reuses the promise that was
   passed during the first attempt. This is itself a form of memoization.
   We need to be able to memoize the reactive inputs to the `use` call using
   a hook (i.e. `useMemo`), which means, the reactive inputs to `use` must
   come from the same component invocation as the output.
  
   There are plenty of tests to ensure this behavior is correct.
  const shouldDoubleRenderDEV =
    __DEV__ &&
    debugRenderPhaseSideEffectsForStrictMode &&
    (workInProgress.mode & StrictLegacyMode) !== NoMode;
  shouldDoubleInvokeUserFnsInHooksDEV = shouldDoubleRenderDEV;
  let children = Component(props, secondArg);
  shouldDoubleInvokeUserFnsInHooksDEV = false;
   Check if there was a render phase update
  if (didScheduleRenderPhaseUpdateDuringThisPass) {
    
    
    children = renderWithHooksAgain(
      workInProgress,
      Component,
      props,
      secondArg,
    );