I like this proposal but I think it should be an error and not a warning if the payment is not failed.
In case the payment should be really rescheduled the user must fail the payment.
Of course but if the user is not allowed to fail the payment it must ask somebody else to do it.
Otherwise, rescheduling the payment will produce a duplicated line to pay.
I have a another similar case which may afect payments. Here is my scenario:
Create a supplier invoice and post it
Creat a payment for the supplier invoice, submit and approve it (but do not submit it)
Cancel the invoice
Currently there is no warning nor any error raised to let the user know that the payment is on the way.
Also the payment is not updated so at the end it will result in paying a cancelled invoice.
Furthermore, in such state it is not possible to delete the payment, as you get a DomainValidationError complaining that the line should not be reconciled for draft state.