С Go 1.14 планировщик вытесняет долго выполняющиеся горутины без точек вызова (tight loop), чтобы другие горутины получили время. Раньше кооперативная многозадачность могла оставлять одну горутину надолго на P. Preemption основан на асинхронных сигналах и проверках в точках вызова.