When we refuse a create cell due to onion queue length, we should say END_CIRC_REASON_RESOURCELIMIT
Right now in command_process_create_cell() when assign_onionskin_to_cpuworker() fails, we close the circuit with
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_INTERNAL);
But in onion_pending_add() when we've got old onions, we close the circuit with
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_RESOURCELIMIT);
Since the primary reason assign_onionskin_to_cpuworker() fails is because onion_pending_add() hits the "ol_length >= get_options()->MaxOnionsPending" clause, I think we should change command_process_create_cell() to claim RESOURCELIMIT rather than INTERNAL in its destroy cell.
And I think we should do this in 0.2.3 so the fix gets out in time to make a difference for the measurement scripts Mike has been playing with.