hi,
I would agree with Eric.
Based on my own reading of the posts here and my own experience the devices never have them in the same moment.
My iPad and iPhone can be within seconds of each other (iPhone generally "first").
The Mac always seems a little tardy in comparison.
The Mac will generally be behind on SMS as the iPhone is the Device that is getting them from the Carrier and sending them on via WiFi to the Mac.
That can depend on what exactly the iPhone is doing as well as getting SMS items.
An iMessages arrives at the server and is flagged to be delivered to as many devices as you have logged in.
In some ways it can be easier to think of them as copies fro each device.
As each devices accepts the iMessages it's "Copy" is deleted from the server (which means it can never be "recovered" by that device again).
Each device cannot access the iMessages "Copies" being sent to other devices.
It's never been entirely clear how much getting a sync version plays into this.
For example My Mac is set to send from the Apple ID (New Outgoing Messages only)
The iPhone is set to the iPhone Number.
If I specifically list my iPhone Number as the Contact my iPhone will ping before the Mac shows the sync "Received" side version.
This has made me wonder if the Mac might be "late" with iMessages sent to the iPhone Number as it then gets a sync "Copy".
Now there is a deal of Fuzzy Logic to this but that is partly to keep the ideas simple.
I hope it helps

9:10 pm Wednesday; July 6, 2016
iMac 2.5Ghz i5 2011 (El Capitan)
G4/1GhzDual MDD (Leopard 10.5.8)
MacBookPro 2Gb (Snow Leopard 10.6.8)
Mac OS X (10.6.8),
iPhone and an iPad (2)