I think introducing separate CancelCompletedEventArgs with a HasCompleted property is better. Then there is nothing to argue about.