I have this same problem because I also work in a service industry. I think that establishing the ground rules ahead of time makes things simple and there are no questions if you do stop work.
When I work with other business I have them sign a project agreement outlining our and their responsibilities.
As far as payment goes I require 50% up front and 50% upon completion. If you want to give them more incentive you can detail in your agreement that they have 45 days to pay the invoice before you begin to charge penalties for late payment. This is common in B2B.
I think that this alone will help increase the speed at which your clients make payment.
Have you offered a discount for on-time payments? We used to work with a vendor who offered a percentage off the price if we had it IN THEIR HAND by 5pm on the day it was due. Some companies will still ignore it, but the smart ones will understand that 3% is 3% they add to their bottom line.
B2B is hard because everyone tries to float. It can be frustrating if you`re on the receiving end.
The longest my customers are given is 30-days. Clients that consistently float are then followed-up regularly for payment. Cash flow is king and floating takes a company down more than anything. My business is small and I don`t have the resources to work as a charity.
Have you considered selling your accounts receivables? In most situations, for a very small percentage, you can receive regular monthly checks from investors. This is a great solution currently used by medical clinics, hospitals and other B2B providers. This allows them to move forward with building their business through capital expenditures and providing services - not worrying about when the next payment will let them continue.
If you would like more information, I`m happy to provide options for you!