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?
I was involved in similar kind of work where I was supposed measure the latency in wireless sensor networks. There are different ways to measure the latencies.
If the subscriber and client are synchronized.

Fill the payload with the time stamp value at the client and transmit
this packet to subscriber.  At the subscriber again take the time
stamp and take the difference between the time stamp at the
subscriber and the timestamp value in the packet.
This gives the time taken for the packet to reach subscriber from
client.

If the subscriber and client are not synchronized.
In this case measurement of latency is little tricky. Assuming the network is symmetrical.

Start the timer at client before sending the packet to subscriber.
Configure subscriber to echo back the message to client. Stop the
timer at the client take the difference in clock ticks. This time
represents the round trip time you divide it by two to get one
direction latency.
How to measure latency in paho-mqtt network