The MR_mergeChangesFromiCloud in NSManagedObjectContext+MagicalObserving.m preforms the merging on the main thread. A large update from iCloud locks up UI.
I did not understand Core Data and MagicalRecord enough, and after looking at it again my culprit is NSFetchedResultsController. Large updates to my NSFetchedResultsController sitting over an iCloud store keeps locking up the UI, so I am doing stupid.
So, while you might have made an error in your code, would you mind explaining your scenario a bit more? I feel that though this isn't a bug per se, but in fact is more like an API bug. That is, it seems that the MagicalRecord API isn't as clear as it should be in order to achieve the intended results (ie. not running a merge on the main thread)
Have done so far to deal with it (but seems hackish):