in task.go [177:181]
func (t *Task[T]) finished() bool { t.mutex.RLock() defer t.mutex.RUnlock() return t.state.IsTerminalState() }