[Naturally I'm obliged to state that I am not a lawyer, a doctor or an astronaut and you should consult someone who is a lawyer. And a doctor and an astronaut if possible.]
Your right to withdraw services is ultimately down to your contract, however I would make the assumption that if it does not specifically mention it then you don't have that right.
Certainly if you are going to withdraw your services then do so in an open way - don't fake errors or similar. You should either be sure you can do it in which case you can do it openly, or you shouldn't do it. If you're going to do it you should give him formal written notice in advance - at least 7 days I'd suggest to allow him a chance to remedy matters.
But you mention "Every bill is argued and debated over" which suggests work is on-going. The first thing I'd do would be to decline to accept any more work from him and make it clear why. State that you will fulfil all currently contracted obligations, however you will not discuss any new work of any sort outside of this until he has settled his account in full.
If he agrees to that then you need to make it clear the basis on which you will work for him in future.
I wouldn't suggest a kill switch - it's to open to argument. Instead I'd demand payment of at least 80% before you'll ship code, the rest to be paid when the code is put live. If he objects say that you'll put the on-going work under Escrow so he knows that it's safe.
I'd also make it absolutely clear that the IP and all rights to the code remain with you until payment is received in full.
If he doesn't agree to that then shake hands and go your separate ways (he still owes you the money of course and you would still need to keep chasing that).
Oh, and watch this. Mike Montero's talk "Fuck you, pay me" about not getting into this situation in the first place.