Fix race condition for cancelling delayed operations

@Raizlabs/maintainers-ios 

There was a race condition in the delayed operation due to the fact that the block is dispatched asynchronously (unavoidable -- we can't use `dispatch_sync` because there may be reentrancy, creating a deadlock).

Fixed by checking the cancelled state in the dispatched block so that if it was cancelled before the async block is executed, nothing will happen.