I have a suggestion:
From what i understand running out of BTC on bitstamp was what lead to the cascade. How about next time this happens, and the order book moves more than 5% out of sync with bitstamp, that bfx pauses *sell orders*.
So its similar to halting trading, but *limit buy* orders are still allowed.
What will happen is the traders and bots will start to fill in the depleted order book. Eventually sell orders are restored again once the order book depth reaches some predetermined value, like say 1000 Btcs to the bitstamp price. let the sell orders trickle in and if the depth is depleted again and goes 5% out of sync with bitstamp, you once again halt *sells* and resume when the depth rebuilds enough. Meanwhile, you're also sending more BTCs to bitstamp.
This is like a circuit breaker but allows a controlled sell off. The advantage is that because its slow, forced liquidations won't cascade to zero because there will always be buyers willing to fill in with more bids when they see the bitstamp/bfx order books go out of balance. Also i think the number of forced liquidations will be reduced because they are stopped at 5% below bitstamp and only resumed when the bids fill in. eventually there will enough bids to repay lenders and stop the cascade.
The point of halting trading i think is to stop a cascade and destroying the lenders. By still allowing *buy limit orders* placed, we're still giving the lenders their money (since its coming out of the buyers).
If there aren't enough buyers then no worries, the depth never refills and trading is not resumed until the extra BTCs get to bitstamp. This system won't be any worse than the current system of halting all trades until btcs get to bitstamp... at least i don't think it's worse.
This "half-breaker" works both ways, If the opposite happens somehow, you can stop buy orders in the other direction.
Anything wrong with implementing a half-breaker?
The only difficulty i can see is that extra computing power is needed to check if the above conditions are met after every trade. After a sell occurs, check if there is still enough btc in bistamp, if not, check if the last trade pushed the price to 5% below bitstamp price, if true, STOP SELLS.
For very large sells of thousands of BTC you'll also have to break up the transaction into smaller pieces and implement the checks after each piece.
Anyway, could this idea work?