Xero now handles overpayments really well, if you enter the overpayment in Xero. It creates an unapplied payment.
Overpayments do not sync to Xero because Xero's standard payment API does not allow overpayments (I guess). The payment simply does not sync, and the invoice goes to Xero as completely unpaid. This means that the overpayment needs to be entered in Xero as well. Often my clients want the sales team to use only Dear, so this is not a great solution.
However, Xero has an overpayment API. Could Dear not use this API? We still have the problem of Dear not automatically allowing overpayments to be applied as payment to future invoices, but at least it would avoid double entry.