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)
jest.advanceTimersByTime(ms);
        
        return new Promise(resolve => {
          setImmediate(resolve);
        });
      }
      const SimpleCacheProvider = require('simple-cache-provider');
      let cache;
      function invalidateCache() {
        cache = SimpleCacheProvider.createCache(invalidateCache);
      }
      invalidateCache();
      const TextResource = SimpleCacheProvider.createResource(
        ([text, ms = 0]) => {
          return new Promise((resolve, reject) => {
            setTimeout(() => {
              ReactNoop.yield(`Promise resolved [${text}]`);
              resolve(text);
            }, ms);
          });
        },
        ([text, ms]) => text,
      );
      function Text(props) {
        ReactNoop.yield(props.text);
        return <span prop={props.text} />;
      }
      function span(prop) {