Send TRUNCATED backward on an non-error closing OR circuit

With #40623 (closed), we decided to send back a DESTROY cell instead of a TRUNCATED. However, there is this undesirable effect of this that if data is in-flight to the client, they might get a DESTROY before getting it all.

One example here would be if an HSDir would send the descriptor and then immediately close the circuit then it is likely that the whole descriptor might not fully arrive.

So one idea here is that we could simply send a TRUNCATED on an OR circuit (non origin) for which the reason for close is "finished" as in not an error. In our example above, the HSDir would send that cell and wait for a DESTROY to close the circuit.

In case of errors, we just immediately send a DESTROY.