Keep using too-dirty circuits if no new circuit can be built?
When behind a firewall that not only lets only a few ports through but that also validates that only the expected protocol is passing through, it may take dozens of seconds to build a new circuit. In the meantime, new connections will timeout before new circuits are built.
This behavior deserves some attention. Perhaps until a new circuit is built, an old circuit should continue to be used or after a few seconds of waiting for the new circuit.
However, if there's no connection alive, there might not even be old circuits to fall back to. Then, the user might be given the choice to always keep an old circuit open, even if idle, until a new circuit is built.