I hate this subject. The vast majority of my clients insist on the pay-when-paid scenario. I've tried to change this during contract development a couple of times and got nowhere.
This gets a little tricky for me because I've always eventually gotten paid. (Sooner or later I'll probably get stuck holding the bag.) The objectionable part is my big firm client will sit on a $5-10k invoice for months before paying. They're big and the cashflow would mean nothing to them. $5-10k is nontrivial for me, and yet I had to front the work, travel, etc. for the team. It's not just architects. EORs and contractors are as bad. Because I will get paid, this is more of a matter of principle, or ego thing. A higher principle is I'd rather have less money later than faster money once and then never hear from them again, so I shut up.
That has affected my policies, though. I use subs quite a bit. When I can write a check without bottoming-out our cash reserves, I write a check. I only go with pay-when-paid when payment will come soon and I don't have the cash. In rare cases, when I knew it would be a while until the client paid, I've gone to the bank and borrowed the cash to pay the subs. If anybody gets left holding the bag for nonpayment upstream, it'll be me, not a colleague downstream.