You have to build a queue system in this kind of case, similar to what you can find on ticket booking system for big events.
The principle is simple, each customer has 15 minutes to complete his payment from the moment his cart is considered complete.
At this time, products in his cart are placed in reserved stock, if the payment is not confirmed after 15 minutes, customer is ejected from the order tunnel and returns to the start of the queue, the stock reserved is replaced in global stock.
The payment platforms allow you to indicate the maximum time allowed on the payment page in the optional parameters (this is the case of Worldline which I use for example), however the management of the queue must be done on your side. Thanks to a PrestaShop module, there are some on Addons like the one from LonelyStock.
The fault of most current modules is the management of the queue and the reserved stock which is bad, I recommend a specific development