This is a feature who dont want to cancel order if payment process is fail or etc. This is a bug for who compulsory want to complete order in case of status payment status otherwise no need to place order.
Now for this you have to customize or use any existing plugin or create new plugin for this changes.
Most of the store owner use Cash on Delivery payment plugin. Even sometimes Card on Delivery. That's why unpaid orders also must be saved in same table. However you can easily hide unpaid orders from your admin panel by customizing your code.
Which payment gateway are you talking about ? There is nothing to fix because this way is fail safe by design.
What do you want to happen for the case when after the payment is made there is an error on the return from the payment gateway and the nop website is not called back for some reason. Then you have a payment but no order ?
Sure you can implement a retry payment for the case you are talking about. In our system we also send an email to notify / remind that customer the payment has not been made and a link to the website to retry payment / select another payment method.
I am using Payment Gateway Avenue (available in marketplace) for credit / debit card payment.
As customer selects card payment option he is directed to payment portal page for completing the purchase.
For any reason the payment is cancelled or aborted. Customer is redirected to thank you order placed page.
Which confuses the customer . The correct flow should be payment unsuccessful and retry. This is normal flow in all websites but issue in NOPcommerce.
The communication needs to clear between website and customer. As we can't tell end customer about technical details. Technical issue to be fixed by development team.