Derives the shared error dimensions from a thrown error.

Every failure event wants the same four fields and the same message cap, so this exists to keep them from drifting — before it, the block was repeated at each failure callsite, and a cap applied in one place could silently be forgotten in another.