anchor.diff:  -spec monitor_workflow_execution(test_ctx()) -> ok | no_return().
   monitor_workflow_execution(TestCtx0) ->
       receive {ReplyTo, StepMockCallReport} ->
  +        TestCtx1 = TestCtx0#test_ctx{test_hung_probes_left = ?TEST_HUNG_MAX_PROBES_NUM},
           {StepPhaseSelector, StepMockSpec} = get_step_mock_spec(StepMockCallReport, TestCtx0),
   
           StepPhase = #step_phase{
  
positive.code:         current_run_num = 1,
          ongoing_incarnations = Incarnations,
          workflow_execution_exp_state = ExpState,
          workflow_execution_exp_state_changed = false
      }).
  
  
  
negative.code: 
      executed_step_phases = [] :: [step_phase_selector()],
      pending_step_phases = [] :: [step_phase()],
      deferred_step_phases = #{} :: #{step_phase_selector() => [step_phase()]},
  
      test_hung_probes_left :: non_neg_integer()
  }).
  -type test_ctx() :: #test_ctx{}.
  
  -define(AWAIT_OTHER_PARALLEL_PIPELINES_NEXT_STEP_INTERVAL, 100).
  -define(TEST_HUNG_MAX_PROBES_NUM, 10).
  
  -define(TEST_PROC_PID_KEY(__ATM_WORKFLOW_EXECUTION_ID),
      {atm_test_runner_process, __ATM_WORKFLOW_EXECUTION_ID}
  