Rework cancellable events to cut down on repeated code. Also adds callbacks to an event being cancelled.