Allow rosterless operation fix

`[parent allowRosterlessOperation]` would get called inside the core data block which would cause that entire queue to be blocked since the call to the queue is synchronous. Moving it out of the block and creating a variable for it fixes this issue and everything gets called on their proper queues.