They are already in breach of contract by not paying. It sounds unreasonable to expect him to continue working when it's unclear he's ever going to be paid. (Or likely he's never going to be paid, even.)
Depending on the contract and the law, the other party being in breach of contract does not mean you can, without consequence, also breach the contract. You signed the contract so you are bound to the contract, not to the other party.
How do you know the company is in breach of contract for not paying? Have you seen the contract that is in play here? You have no idea what the payment terms are, let alone clauses regarding delivery. Even if we were to see the contract, we are not able to assess and respond in a manner that has any legal merit.
Seriously, these kinds of "Ask HN" make me angry with the kinds of comments people reply with. You cannot possibly know the legal situation the OP finds themselves in based on the (lack of) details they've written. What you are telling them could see them in court losing the case, and maybe even having to pay damages for cutting ties. You are giving advice that could potentially destroy their business, or even result in personal financial ruin.
Read that again: your comment could ruin a person's life. Think twice before you pretend to be in a position to help someone by spewing advice without having a clue what the situation calls for.
Frankly, I'm astounded that HN allows "Ask HN" posts seeking advice with legal ramifications. These should be moderated and removed. The ONLY valid answer to these posts is "consult a lawyer". Nothing else is helpful, whatsoever. Even real lawyers who might respond cannot determine the correct course of action without hours of research into the specific case at hand.
I'm not the one giving legal advice, I'm giving a moral opinion: it's unreasonable to require someone to work for no pay. That is something that should be illegal. I'm here for the moral commentary. Of course he should consult a lawyer. Plenty of people pointed that out already. That does not mean this is not an important topic for discussion; it is vital that people know what to pay attention to in their contracts.
And if lack of payment is not breach of contract, it's a bizarre contract. That would mean he already agreed to work for free, and that seems very hard to believe. If it does, he's a much bigger idiot for that than for relying on anonymous internet legal advice.
Then again, some laws, jurisdictions and judges are absolutely surreal. And that's also why anonymous legal advice on an international forum is meaningless: what matters is your local jurisdiction. But that doesn't mean we can't have an opinion on it.
It's not possible for a random stranger on the internet to provide, as you call it, "moral advice". Moral advice never wins a case in court. Any advice, prefixed with a bullshit adjective like "moral", might be - yes, stupidly - interpreted as information that might have some amount of legal merit for someone who is in a legal predicament. The fact that "IANAL" (I Am Not A Lawyer) even exists as an acronym is a disservice to anyone who ever reads an "IANAL" comment trying to find some shred of hope that will assist them in a legal scenario. People wear blinders when in desperate situations, potentially taking advice from people who don't have a goddamn clue what they are talking about.
Now I don't give a damn how rude I am being: never give advice to someone regarding a legal matter other than "you should talk to your lawyer", unless you are offering your legal services - and surprise, legal discussions would never happen on a public forum. You could destroy a life if you offer ill-advised information, and the recipient believes you instead of seeking legal counsel. Unless you know every facet of their case, even if you're a lawyer, you cannot guarantee that your advice is not ill-advised for their situation.
In other words: two wrongs don't make a right ;)