Does your virtualization software allow you to log on to the system console? Don't run mstsc (RDP) if it hangs.
Try PSExec, that will at least get you to a command prompt. Download it to your PC. Launch a Powershell session before the server hangs.
https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
psexec \YourServerName powershell.exe -executionpolicy unrestricted
Also download pslist to the problem server.
https://learn.microsoft.com/en-us/sysinternals/downloads/pslist
It sounds like you have some performance hang. Unfortunately, there's really no way for us forum users to look inside of your server to see what is going on. So if psexec can get a working command (PowerShell) prompt at the point of the hang, you might be able to see what's running and maybe recover.
"pslist -accepteula -t" Show processes by parent. If you see a lot of processes in the leftmost column that might indicate that their parent process has terminated and they are hung.
Get-Process will show what programs are running and key metrics. Run it before the server hangs and then after the hang has occurred. Compare the values. Do you see more programs executing? Are more handles in use? Is more memory in use?
Use netstat to see if there are an excess number of network connections. "netstat -aon | findstr -i estab"
Try killing application processes, or stopping services. See if you can free up the server.
I wrote a PS script that I called RecentEvents.ps1 to collect the events from all event logs and sort them into TOD sequence. After the server has hung up and freed up, run this to look for messages that might indicate what happened.
https://docs.microsoft.com/en-us/answers/questions/102481/eventlog-madness.html