Circuit Build Timeout code needs cleanup
There's two places where we time out circuits:
circuit_expire_old_circuits_clientside is filled with 19 years of cruft and complexity, and only operates on the second resolution, instead of milliseconds.
These probably only affect timeout in rare cases -- #40157 seems to show that with fixes from #40168, then we get very close to the target 20% timeout. But there's so much old cruft here that we should clean it up anyway. It might affect UX very poorly in some edge cases.