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)
ReactNoop.flush();
    expect(ReactNoop.getRoot('two').current.actualDuration).toBe(14);
  });
  describe('interaction tracing', () => {
    let onInteractionScheduledWorkCompleted;
    let onInteractionTraced;
    let onWorkCanceled;
    let onWorkScheduled;
    let onWorkStarted;
    let onWorkStopped;
    let throwInOnInteractionScheduledWorkCompleted;
    let throwInOnWorkScheduled;
    let throwInOnWorkStarted;
    let throwInOnWorkStopped;
    const getWorkForReactThreads = mockFn =>
      mockFn.mock.calls.filter(([interactions, threadID]) => threadID > 0);
    beforeEach(() => {
      jest.resetModules();
      loadModules({
        enableSchedulerTracing: true,
      });
      throwInOnInteractionScheduledWorkCompleted = false;
      throwInOnWorkScheduled = false;
      throwInOnWorkStarted = false;
      throwInOnWorkStopped = false;
      onInteractionScheduledWorkCompleted = jest.fn(() => {
        if (throwInOnInteractionScheduledWorkCompleted) {
          throw Error('Expected error onInteractionScheduledWorkCompleted');
        }
      });