Previously, once a callback was in the execution queue, it couldn't be canceled. Now we check whether the callback was canceled before executing it.