re: debt collection: just my experience in several small/startup companies... Sending your biggest (only) customer to a debt collector, no matter how gentle, might be counterproductive.
We often get a PO from a reputable, but disorganized or bureaucratic BigCo. We want that to be a good relationship, and we want more business from BigCo. We want positive reviews and testimonials from them. BigCo. is good for the money...eventually... but like any BigCo. they have all the leverage and for many reasons can delay payment until it is convenient for them. Meanwhile we need to pay bills.
As such, a gentler debt collector is not really what we want since the person we would nag (however gently) would likely be the person who needs to green light future projects and be a champion in future discussions throughout BigCo.
What we typically do in the worst case is tell them that it's been great working with you, but we have employees and bills to pay, so if the invoice isn't paid, unfortunately we will have to disable their account in X days. 99% of the time we get paid the next day. The 1% we had to disable were likely never going to be good customers so I am glad we fired them.
Granted, this only works in a SaaS like scenario, not in cases where the work is one-time and handed over to the customer. In those cases, I would recommend requiring pre-payment, at least partial pre-payment. I often pay programmers on fixed bid projects 33% up front, 33% on release for acceptance testing, and 33% when final bugs are fixed. We both take risks, but if we have both done due diligence, then there's rarely a problem.
A smart contract that auto-pays upon (phased) delivery, etc. could be useful, and remove a lot of hassle/anxiety.
From what I've seen, can't that be done "out of the box" today with an ethereum contract?