@Paul_Hossler, you gave me an idea.

Here's a proposed solution, which i THINK might resolve this.

This solution doesn't CARE if my custom error numbers overlap native error numbers. It enables me to have a custom error-numbering strategy without fear of conflicting with native errors (or errors generated by other workbooks or applications.)

The solution exploits the .Source property of Err.

Table on worksheet called "tblCustomErrors"
ErrNum  ErrDescription
11  User cancelled the process
53  User clicked pause

VBA:
Sub Test_Handler()
          On Error GoTo HANDLER
          
          Debug.Print 1 / 0                   ' 11, Division-by-zero
          Kill "C:\Doesn't-Exist.txt"         ' 53, File not found
          Err.Raise 11, "Custom"              ' 11, User cancelled
          Err.Raise 53, "Custom"              ' 53, User paused
          
          Exit Sub
HANDLER:
          GlobalHandler
          Resume Next
End Sub


Sub GlobalHandler()
          Dim sDesc As String
          
          Select Case Err.Source
                    Case "Custom"
                              ' get description from worksheet
                              sDesc = WorksheetFunction.VLookup(Err.Number, [tblCustomErrors], 2, False)
                    Case Else
                              sDesc = Err.Description
          End Select
          
          MsgBox sDesc
End Sub
Who knows, this is might be how .Source was intended to be used.