Innerhalb einer MSGQ kann kein MSGKEY doppelt auftreten.
Da der RCVMSG (analog das API) relativ zum MSGKEY die nächste Nachricht abrufen kann, muss der Schlüssel ja eindeutig sein.
Du hast nur dann verloren, wenn die Nachricht zwischenzeitlich entfernt wurde.

Ich habe auch schon solche Nachrichtenüberwachungen realisiert und habe mir die MSGKEY's gar nicht gemerkt (da sie gelöscht werden können) sondern bin tatsächlich nach Datum Uhrzeit gegangen. Dabei habe ich die letzten Nachrichten zuerst verarbeitet.