NSOperation: does not change isExecuting if cancelled, does not hold any locks while notifying of isExecuting/isFinished change, changes aforementioned keys in the right order