Replace GUI connection startup waits with a cancellable, staged Qt transaction. Observe core endpoints, DNS resolution, TUN device readiness, and runtime survival without nested event-loop waits while preserving the synchronous plugin compatibility path.
Commit runtimes only after every required stage succeeds, reject stale generations, and cover readiness, cancellation, rollback, platform ordering, and controller integration.
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
Create and dispose the DNS resolver with its owning connection manager
instead of at module import time. Make cleanup explicit and keep
architecture and external-core tests aligned with injected resolver
ownership.
Signed-off-by: Loren Eteval <loren.eteval@proton.me>