errgroup.Group - это WaitGroup плюс контекст и накопление первой ошибки. Запуск через g.Go(f), ожидание g.Wait() возвращает ошибку. При первой ошибке контекст отменяется. Удобно для параллельных задач с отменой и возвратом ошибки. WaitGroup - только ожидание завершения без ошибок и контекста.