Only suspend services when an invoice is overdue
The current functionality in WHMCS assumes that a service should be suspended if it's passed its renewal date. It doesn't take into account if there is an actual invoice open, it assumes that this is the case if the number of days after the due date is higher than what you have configured.
I know this generally only happens when there has been manual interference from an admin. In our case, we sometimes cancel an invoice and downgrade a package to a free version. If we forget to change the due date, WHMCS suspends the service later on without any prior notification to a customer. You could argue that the administrator or support employee needs to think about such cases but this is why we all purchase WHMCS, right?
I would like WHMCS to only suspend services for non payment when an invoice is actually overdue.
If there is no invoice and the service is overdue it should create a new to-do item asking an administrator what to do. It shouldn't suspend a service out of the blue. Especially not with the default reason of non-payment.