Get a per-message route-trace (Infobip/Sinch DLR-opacity closer)
Returns the ordered routing+DLR timeline assembled from the data we already persist on the message row and its webhook_deliveries fan-out. Events: accepted -> routed -> sent -> terminal (delivered|failed|undelivered|rejected|read|expired|submitted_no_receipt) plus one webhook_fanout event per customer-side webhook delivery. Carries provider, MCC/MNC, external_id, per-event latency_ms, http_code, and attempts. Aggregate summary returns accept_to_sent_ms, sent_to_delivered_ms, and accept_to_terminal_ms so the Infobip-parity ‘where did the time go’ question can be answered in one round-trip. Returns 404 when the message id does not exist.