I think the answer, limited solely to the symbols you ask about, is that <= is always going to come before each of the other symbols you list, and a message's Completed line will come after all of those symbols. However, each of the other symbols ==, =>, **, can appear in any order between <= and Completed.
One thing to keep in mind is that a message can have multiple recipients, and each of those recipients can be deferred (==), so the order of those symbols matters for each recipient of the message
So, every message should have exactly one <= when the message is accepted by the local server
Every message should have exactly one Completed line indicating that the local server is done with the message
Between those:
Each message:recipient will have exactly one of ** (failure) or => (delivered). It will be the last entry for that specific message:recipient.
Each message:recipient may have one or more == (deferred) lines. If a message:recipient has a == log line, it will occur before that message:recipient's => or ** line.
The order of different recipients in a given message only matters if you think it matters, most likely.