Under certain conditions we decrement the `__count` attribute too often, which can result in `onInteractionScheduledWorkCompleted` being called prematurely and/or more than once for a given interaction.

- [x] Track interactions scheduled during (sync) render phase.
- [x] Do not double-decrement suspense loads within a sync render.
- [x] Do not decrement sync commits that are waiting on suspense when the `Placeholder` is past its expiration.
- [x] Properly decrement pending interaction count when a suspense resource loads before its placeholder is shown.
- [x] Add test with high priority render between suspended and resolved suspense states (for both sync and async rendering)
) {
      alternate.childExpirationTime = expirationTime;
    }
    if (node.return === null && node.tag === HostRoot) {
      return node.stateNode;
    }
    node = node.return;
  }
  return null;
}
function storeInteractionsForExpirationTime(
  root: FiberRoot,
  expirationTime: ExpirationTime,
  updateInteractionCounts: boolean,
): void {
  if (!enableSchedulerTracing) {
    return;
  }
  const interactions = __interactionsRef.current;
  if (interactions.size > 0) {
    const pendingInteractions = root.pendingInteractionMap.get(expirationTime);
    if (pendingInteractions != null) {
      interactions.forEach(interaction => {
        if (updateInteractionCounts && !pendingInteractions.has(interaction)) {
          
          interaction.__count++;
        }
        pendingInteractions.add(interaction);
      });
    } else {