## React version
React version: 18.3.0-next-b0671f9ea-20230130

## Problem
In `StrictMode`,  when using hydrateRoot to render a component that using `useSyncExternalStore` it seems that useSES will do hydration twice. 

But in second hydration process,  useSES does not use the result of `getServerSnapshot` as initial state, which will cause hydration error.

This problem will only happen in `development` mode, 

## Reproduce
Link to code example:
https://codesandbox.io/s/useses-18-3-rojznv

It works well in react 18.2
https://codesandbox.io/s/useses-18-2-13iskc




if (__DEV__) {
      ReactCurrentDispatcher.current = HooksDispatcherOnMountInDEV;
    } else {
      ReactCurrentDispatcher.current = HooksDispatcherOnMount;
    }
  }
  return result;
}
function use<T>(usable: Usable<T>): T {
  if (usable !== null && typeof usable === 'object') {
    
    if (typeof usable.then === 'function') {
      
      const thenable: Thenable<T> = (usable: any);
      return useThenable(thenable);
    } else if (
      usable.$$typeof === REACT_CONTEXT_TYPE ||
      usable.$$typeof === REACT_SERVER_CONTEXT_TYPE
    ) {
      const context: ReactContext<T> = (usable: any);
      return readContext(context);
    }
  }
  
  throw new Error('An unsupported type was passed to use(): ' + String(usable));
}
function useMemoCache(size: number): Array<any> {
  let memoCache = null;