code: func (mtask *managedTask) waitSteady() {
  	seelog.Infof("Managed task [%s]: task at steady state: %s", mtask.Arn, mtask.GetKnownStatus().String())
  
  	timeoutCtx, cancel := context.WithTimeout(mtask.ctx, mtask.steadyStatePollInterval)
  	defer cancel()
  	timedOut := mtask.waitEvent(timeoutCtx.Done())
  
  	if timedOut {
  		seelog.Debugf("Managed task [%s]: checking to make sure it's still at steadystate", mtask.Arn)
  		go mtask.engine.checkTaskState(mtask.Task)
  	}
  }
docs: // waitSteady waits for a task to leave steady-state by waiting for a new
  // event, or a timeout.