I had a scenario where my ISP was offline a day, so I used cellular tethering. Once the ISP was back online, I swapped to it and Elite: Dangerous wouldn't connect (Odyssey specifically, Horizons still worked).
I ran a procmon after talking to some squadron mates and found the net xml files. One of them had IPv6 specified, which my ISP doesn't fully support (according to my router). I flipped the 1s and 0s for ipv4 and ipv6 and now it connects fine.:
From the appconfiglocal.xml located where steam installed it for me, E:SteamLibrarysteamappscommonElite DangerousProductselite-dangerous-odyssey-64appconfiglocal.xml
What it should look like for IPV4:
<?xml version="1.0" encoding="UTF-8" ?>
<AppConfig>
<Network Port="5100" IPv6="0" IPv4="1" IPv6Port="0" ReportSentLetters="1" ReportReceivedLetters="1" VerboseLogging="1" UseNicGuid="{538AB76A-C84C-4497-B133-1BCC7C63A278}" />
<Journal Address="0.0.0.0" Port="0" />
</AppConfig>
What it did look like:
<?xml version="1.0" encoding="UTF-8" ?>
<AppConfig>
<Network Port="0" IPv6="1" IPv4="0" IPv6Port="0" ReportSentLetters="1" ReportReceivedLetters="1" VerboseLogging="1" UseNicGuid="{538AB76A-C84C-4497-B133-1BCC7C63A278}" />
<Journal Address="0.0.0.0" Port="0" />
</AppConfig>
Hope this helps someone else out with the dead "waitingforconnection" scenario!
(don't straight up copy these examples, they include a unique identifier for my network card that you may not have, just swap 0s and 1s)
o7 cmdrs
Source: https://www.reddit.com/r/EliteDangerous/comments/s71b0k/psa_post_network_connectivity_solution_for/