Hola.
Saben cual es la mejor solucion? En su DB guarden siempre el id de la orden y lo que quieran controlar, y ala columna del order id configurenla para que sea unica, asi no se repetira nunca la misma orden, era algo tan facil.
Como siempre el order id son puros numeros, esta miy facil asi.
Igual sigo usando sleeps aleatorios para mayor seguridad. Igual no dependan solamente de las notificaciones, es miy mala practica no estar guardando informacion en la DB, de perdida guarden el ID para que tengan un control interno.
No es error de ML, simplemente asi funciona ML, el error esta en nosotros al creer que la API va a hacer nuestro trabajo.
Saludos y a pensarle mucho para poder resolver porblemas.