One dangerous thing that stands out is this "kill switch". VERY bad idea. Now you are liable for damages. The way to handle this is: When you get the judgement against your "client", slap a lean on his properties equal to the amount owed (and throw in your court costs). That inclues his accounts. All you need is an order from the judge. That's it. That's about all you can do really. Is to go after his assets. Also I'…
The software licence-key approach seems somewhat similar, and I've yet to come across legal proceedings "because we didn't pay the guy and our 30-day demo ran out", although I'm sure it could get more complicated for services rather than actual shrinkwrapped products.
On the other hand, you've got the fact that it's laid out in the contract (which is presumed read, rather than just clicked through like a shrinkwrap EULA), and the interesting potential for DMCA/WIPO96'alike anti-circumventation proceedings against clients who refuse to pay and extract the kill-switch code to reactivate.
In that theme, is:
final_invoice_paid = false;
if (!final_invoice_paid) { exit() }
a valid "means to descramble a scrambled work, to decrypt an encrypted work, or otherwise to avoid, bypass, remove, deactivate, or impair a technological measure, without the authority of the copyright owner"?My immediate thought is yes, assuming you're still the copyright holder (and you have a copyright assignment on payment clause in contract), but jurisdictional work-for-hire terms might screw you.