This is anecdotal of course and I have not had a large enough body of evidence to say its factual, BUT this has worked every single time for me so far. (about 8 times)
Turn off the console and wait 1-2 minutes. Turn it back on and go to settings -> network -> display network settings.
It should say IP address: automatic at this point.
Then back up one level and go to settings -> network -> test internet connection.
This will refresh the adapter and clear the dns profile as well as the IP address information.
After testing is good go back to the settings -> network -> display network settings
You should see 192.168.0.xxx or 10.0.0.xxx
Once you see that, open ESO and play.
It seems to me like a handshake error, like the console is not reporting to the dhcp/dns servers correctly. Resetting the adapter and "forcing" the console to grab an IP address instead of just using DHCP to login has fixed it for me.
Any time you hard crash or turn the ps4 off this will happen.
This happens to me ESPECIALLY after I put the console into sleep mode while the game is active. It's like ESO keeps an open connection to the server even when the PS4 is in rest, when it comes back it tries to communicate over that connection which is now closed due to the application being timed out.
It gets all bonkers and doesn't know what to do so it just loads and loads and loads.
TL:DR Force your PS4 into an IP address by "testing" the internet connection with ESO closed if you are having issues logging in.
Remember: Your mileage may vary here, but it's worked every time for me.
Tl;dr really weigh the fun you have in game vs the business practices you are supporting.