Улучшить исходный код, чтобы:
не использовать time.Sleep для ожидания завершения горутин;
корректно обрабатывать ошибки;
дожидаться