Для работы NSURLConnection необходим работающий NSRunLoop. Если вы вызываете методы NSURLConnection в потоке, чей NSRunLoop не запущен, NSURLConnection никогда не запустится. Рабочие потоки, которые создает NSOperationQueue, не имеют своих запущенных NSRunLoops. Вы также не можете гарантировать, что поток все еще будет существовать, когда NSURLConnection получит ответ от сервера.
Можно вызывать методы NSURLConnection из фонового потока, но это должен быть поток, время жизни которого вы можете гарантировать, и для него должен быть запущен NSRunLoop.