I wonder whether it would be possible, and whether it would be advantageous, to make this system turn-based (borrowing another turn from the computer games world). A "turn" would execute in full at a particular time. The buyers and sellers have until this time to submit sealed bids. The buyers are ordered by buy-price, and the sellers ranked by sell price, and the buyers and sellers satisfied in order for that turn until the sell price exceeds the buy price, or either list reaches the end.
The advantage of a turn-based system is that it introduces more time into the system, meaning that human traders and those overseeing the market have more chance to respond. There's less opportunity for run-away algotrading to cause a crash. It would potentially mean fewer trades per day, which would mean less commission for brokers.
An example of the turn-interval would be 8 turns per day with an hour in-between them, but other intervals could be explored to find something appropriate for each asset class (any trade-able asset could potentially be traded in this manner).