The Short Message Service (SMS) is defined to send a single short message in a single packet. Coding the characters in 7 bits rather than 8 allows the message to contain 160 characters in a 128 byte packet payload.
The SMS packets are not sequenced. The protocol definition does not require packets be delivered in the same sequence as the messages were sent. If you are familiar with TCP/IP you should think of SMS packets as equilavent to UDP packets, without the ordering guarantee required by TCP.
I can readily imagine that given an unordered collection of packets addressed to the same destination the various servers process each packet on any of several threads. Thread scheduling leads to the possibility that the packets, which you think of as sequenced, are processed out of sequence. The more servers a collection of messages passes through the more likely the sequence gets scrambled. Server load is probably the largest variable that results in delivery delays.
SMS, like UDP, is a "best effort" service. You will find no carrier offers even Fortune 50 corporations a delivery time guarantee, or even a guarantee that a message will ever be delivered. I know of multiple companies using SMS for process control problem alerts ("tank 5 is about to overflow") that want to switch to a different technology because of poor SMS performance where both sender and receiver are in the same state and on the same carrier.
Most of the time a collection of related SMS messages happens to arrive both promptly and in the same sequence as they were sent. However, you cannot assume that the behavior you usually experience is defined as the correct behavior.
Bob