from where does the second document come from?
Published somewhere else?
Can you try to add a sleep period before publishing or just use “delayUntilServiceSuccess=true” on the publish-step?
When it is coming from somewhere else you can also try to pick up the second document by a normal trigger, doing some delay and then republish it to the process trigger. This can be done i.e. by checking for a field in the document which is not used in your regular processing. When it has its default value or is missing/empty then catch it before the subscription trigger, set it to i.e. “delayed” and republish. You will have to change the subscription filter for the process then to check if this field contains “delayed”.
We are using something similar in our project where we are expecting several documents for the intermediate step, but when they arrive to close to each other the process is not consuming all of them or is messing them up.
Just pointing out some options. There might other options/ideas out there, so lets see what others in the community thinks about this.