// always add to buffer
action.NewBuffer = append(action.NewBuffer, start)
if isRunning {
// an actual workflow is running, cancel it (asynchronously)
action.NeedCancel = true
// keep in buffer so it will get started once cancel completes
action.NewBuffer = append(action.NewBuffer, start)
// it's not running yet, it's just the one we were going to start. replace it
action.NonOverlappingStart = start