RELAY_TRUNCATE should give cell queues a chance to flush
Since we introduced cell queues, truncating a circuit has meant that cells pending on the n_cell_queue would likely get dropped when the RELAY_TRUNCATE cell was first received. This isn't very useful behavior: if you sent some data cells then a relay_end then a truncate, you almost certainly wanted the data to arrive.
Fortunately, Tor doesn't (AFAIK) use TRUNCATE like this today. But it would be a good thing to fix.
The implementation could be a little tricky here, since once we process the TRUNCATE, we need to accept EXTEND requests. One solution might be to queue and process all relay cells inorder, not just the data cells. But that would probably create problems of its own.
This came out of a discussion of bug legacy/trac#1184 (moved) by wanoskarnet.