Make sure that all calls to delegate methods are done asynchronously to the main queue; also, many calls were dispatching a block to the main queue which then checked to see if the delegate even existed and implemented that method, and we now do that _before_ dispatching to the main queue (notably the calls to `notifyDelegateOfPosixError`.