Better handling of cancel since it will throw an error. We just needed to double check that we weren't really cancelled before we call the callback.