NOP 4.60.4, plugin NOP PayPal Commerce 1.16 (Payment type: Capture)
Although it has only occurred once so far, we recently had a PayPal Commerce payment that resulted in 2 paid, virtually identical orders being created when the customer only created one.
It was an order with 68 products on it (all with product attributes customisable text and several with images uploaded), and it was still processing the order after payment, when the second order was created.
Both orders have the same "Capture transaction ID" (e.g. 9M999999L9999999V) and "Custom values" (e.g. PayPal order ID: 9RP99999UN9999999) and both have the same "Order GUID" (Order table OrderGuid field). The OrderItem table has 68 records for each of the 2 orders, with unique OrderItemGuid's, as expected.
Order 1
11:36:13 - Order Created timestamp
11:36:36 - Webhook from PayPal logged in Order Notes
6 minutes elapsed (nothing mentioned in Event Viewer logs during this time)
11:42:08 - Order placed logged in Order Notes
11:42:08 - "Order status has been changed to Processing" logged in Order Notes
11:42:09 - "Order paid" email queued logged in Order Notes
Order 2
11:38:12 - Order Created timestamp
(no webhook logged in Order Notes)
11:38:14 - Order placed logged in Order Notes
11:38:14 - "Order status has been changed to Processing" logged in Order Notes
11:38:14 - "Order paid" email queued logged in Order Notes
It looks like something triggered the second order to be created after exactly 2 minutes (perhaps as the first was taking a long time, although it eventually completed successfully with nothing, e.g. deadlocks mentioned in the event log)
As it has only occurred once in 6+ months, it is not a major issue, but there is clearly a way for orders to be duplicated with only one payment. I have not been able to replicate the issue - perhaps something on the server caused the slow processing of the first order that caused the issue to occur, but I thought it worth reporting the fact that it occured, in case someone else has the same problem.