hybrid approach - base pool of workers, but spawn new goroutine if pool fully utilized