I'm trying measure the latency from my publisher to my subscriber in an MQTT network. I was hoping to use the on_message() function to measure how long this trip takes but its not clear to me whether this callback comes after the broker receives the message or after the subscriber receives it? 
Also does anyone else have any other suggestion on how to measure latency across the network?
on_message() is called on the subscriber when the message reaches the subscriber.
One way to measure latency is to do a loop back publish in the same client e.g.

Setup a client
Subscribe to a given topic
Publish a message to the topic and record the current (high resolution) timestamp.
When on_message() is called record the time again

It is worth pointing out that this sort of test assumes that both publisher/subscriber will be on similar networks (e.g. not cellular vs gigabit fibre).
Also latency will be influenced by the load on the broker and the number of subscribers to a given topic.
The other option is to measure latency passively by monitoring the network assuming you can see all the traffic from one location as synchronising clocks across monitoring point is very difficult.
How to measure latency in paho-mqtt network