@scottalanmiller there is nothign wrong with the 5.2 kernel.
So put this last line, without the semicolon, in your /etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
; exclude=kernel*
Then remove the kernel so you can't boot to it (assuming 5.3.7):
sudo dnf remove kernel*5.3.7-200.fc30.x86_64
reboot to be sure it all comes up normal.
sudo reboot
Then do the normal upgrade to 31.
sudo su -
dnf upgrade --refresh -y && dnf install dnf-plugin-system-upgrade -y && dnf system-upgrade download --releasever=31 -y && dnf system-upgrade reboot
Then you can comment that exclude out and do a normal update.
sudo dnf upgrade -y --refresh
And if it fails to log in still, so what. just select the 5.2 kernel again like you do now.