What platform are you on? This seems more like a concurrency question, and there are different options on different platforms.If you want it to run on macOS, I've found NSBackgroundActivityScheduler works wonders. The completion handler it uses can be trivially called from within an NSManagedObjectContext's perform method, too.
Post
Replies
Boosts
Views
Activity
I recommend using derived attributes. I haven't tried using them for unique constraints, but you can definitely use them to make an attribute that is an all-lowercase version of "name".
Do you need to preserve cases? If not, you could just normalize them during validation.