By testing my implementation, I was able to determine that in my case, when both onCancelListener and onDismissListener Dialog callbacks are registered, onCancel is called before onDismiss.
However, as far as I can tell, the Android API is unclear (again) about this and I can only assume it’s an API documentation defect. Does anyone know if this is officially documented somewhere?
According to the Dialog.java code, yes.