True when the abort contains content suitable for application error UI.
This is the inverse of isSilent: either a non-empty message or at least one structured dataset error makes the abort displayable.
bool get hasDisplayError => !isSilent;