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)
return {type: 'span', children: [], prop};
      }
      function AsyncText(props) {
        const text = props.text;
        try {
          TextResource.read(cache, [props.text, props.ms]);
          ReactNoop.yield(text);
          return <span prop={text} />;
        } catch (promise) {
          if (typeof promise.then === 'function') {
            ReactNoop.yield(`Suspend! [${text}]`);
          } else {
            ReactNoop.yield(`Error! [${text}]`);
          }
          throw promise;
        }
      }
      const interaction = {
        id: 0,
        name: 'initial render',
        timestamp: mockNow(),
      };
      const onRender = jest.fn();
      SchedulerTracing.unstable_trace(interaction.name, mockNow(), () => {
        ReactNoop.render(
          <React.unstable_Profiler id="test-profiler" onRender={onRender}>
            <React.Placeholder fallback={<Text text="Loading..." />}>