autoLoad cascade hardening (extends #5578):
- Singleflight wrapper around autoLoadSmallestModel so two send-button
clicks in flight share one cascade instead of fanning out a fresh
/load budget per click.
- /validate POSTs were previously uncapped; a cache of N trust-blocked
repos still produced N /validate calls. Adds MAX_AUTO_VALIDATE_ATTEMPTS
= 10 with a counter inside canAutoLoad.
- abortSignal from the adapter's run() now threads into the cascade and
is checked on entry plus at each loop boundary, so a tab close or
user abort mid-cascade stops further POSTs.
Style consistency (extends #5577):
- _release_self_exe_lock_windows / _restore_self_exe_lock_windows now
emit via typer.echo to match the rest of the file's diagnostic
surface.