docs: def _handle_backward_execution_after_child_execution(self):
          """Cleanup the former child state execution and prepare for the next state execution in the backward
          execution case.
          :return: a flag to indicate if normal child state execution should abort
          """
          self.child_state.state_execution_status = StateExecutionStatus.WAIT_FOR_NEXT_STATE
          # the item popped now from the history will be a CallItem and will contain the scoped data,
          # that was valid before executing the child_state
          last_history_item = self.execution_history.pop_last_item()
          assert isinstance(last_history_item, CallItem)
          # copy the scoped_data of the history from the point before the child_state was executed
          self.scoped_data = last_history_item.scoped_data
  
          # this is a look-ahead step to directly leave this hierarchy-state if the last child_state
          # was executed; this leads to the backward and forward execution of a hierarchy child_state
          # having the exact same number of steps
          last_history_item = self.execution_history.get_last_history_item()
          if last_history_item.state_reference is self:
              last_history_item = self.execution_history.pop_last_item()
              assert isinstance(last_history_item, CallItem)
              self.scoped_data = last_history_item.scoped_data
              self.child_state.state_execution_status = StateExecutionStatus.INACTIVE
              return True
          return False