Nested `startTransition` call "takes over" and makes parent `startTransition` unable to track `isPending`.

Seb says it's a bug.

Repro:

https://codesandbox.io/s/pensive-breeze-rg70wn?file=/IndexPage.js:192-288

1. Click the button
2. `isPending` in `IndexPage.js` is `true`

However, `isPending` in `App.js` is `false`.

Expected: `isPending` in `App.js` is also `true`.
mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]);
   Schedule an effect to update the mutable instance fields. We will update
   this whenever subscribe, getSnapshot, or value changes. Because there's no
   clean-up function, and we track the deps correctly, we can call pushEffect
   directly, without storing any additional state. For the same reason, we
   don't need to set a static flag, either.
   TODO: We can move this to the passive phase once we add a pre-commit
   consistency check. See the next comment.
  fiber.flags |= PassiveEffect;
  pushEffect(
    HookHasEffect | HookPassive,
    updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),
    undefined,
    null,
  );
  return nextSnapshot;
}
function updateSyncExternalStore<T>(
  subscribe: (() => void) => () => void,
  getSnapshot: () => T,
  getServerSnapshot?: () => T,
): T {
  const fiber = currentlyRenderingFiber;
  const hook = updateWorkInProgressHook();
  
  
  
  const nextSnapshot = getSnapshot();
  if (__DEV__) {
    if (!didWarnUncachedGetSnapshot) {