Операция в фоновом потоке не может блокировать основной поток, но может занимать столько памяти, что основной поток может дольше работать эффективно.
Похоже, что ваши многочисленные фоновые выборки, которые "возвращают огромное количество записей", создают большой объектный граф живых объектов в памяти, который пожирает вашу память. Недостаток памяти мешает основному потоку.
Используйте инструменты для профилирования вашей памяти для подтверждения.
Решение состоит в том, чтобы хранить в памяти только реальные, заполненные объекты, которые вам абсолютно необходимы. Вы можете использовать меньшие выборки, извлекать как ошибки, извлекать свойства или извлекать как managedObjectIDs и подобные методы, чтобы уменьшить объем памяти.
Кроме того, убедитесь, что ваши сетевые операции, которые загружают сами данные, не потребляют память или циклы.