А ты можешь объяснить зачем применять DispatchQueue.main.a sync из главной очереди, если main - это serial? (Просто задание вклинится в очередь чуть позже) Я понимаю, когда вызываешь из глобальной очереди. Часто вижу такое в коде на гитхабе. Если задание тяжёлое, оно все равно заморозит UI в таком случае, просто чуть позже.