code: func NewTask(lifecycle Lifecycle, payload []byte) *Task {
  	return &Task{lifecycle: lifecycle, payload: payload}
  }
docs: // NewTask initializes and returns a pointer to a new Task instance. It is
  // constructed with the given payload, progress, and closer channels
  // respectively, all of which should be open when either Succeed(), Fail() or
  // Closer() is called.