Ответ
При GOMAXPROCS=1 программа будет работать в однопоточном режиме. Бесконечный цикл в горутине заблокирует единственный поток планировщика, не давая выполняться другим горутинам (включая main). Это приведет к зависанию программы.
Пример:
runtime.GOMAXPROCS(1)
go func() {
for {} // Бесконечный цикл
}()
time.Sleep(time.Second) // Не выполнится
fmt.Println("Этот код никогда не выполнится")
Решение: добавить вызовы runtime.Gosched() в цикл, чтобы дать шанс выполняться другим горутинам.