Not too long ago my wife and I bought new laptops. We got the same model, from the same place, on the same day. So, it was a bit strange to find that one of them was having a severe issue with Diablo 3 freezing during GR progression, while the other was mostly unaffected. I'm writing here the tools I used, facts gathered and ultimately, the fix. If you don't want to read the entire thing, just skip to the TL;DR fix, but I suggest reading through as some of these other things may have an affect on your game performance as well.
Let me explain a little about the frequency of game freezes, and the stark difference between these two laptops. I'm not going to sit here and say my game _never_ freezes. I might get one or two a night, and most times I go several nights with none. My wife will be playing in the same GR's as me, and _never_ make it through a higher GR without it freezing up on her several times. We're on the same network, so we can rule out bad router, modem, cables, network switch, etc. I've played my characters on her laptop and get the same experience, tons of freezes; so that rules out differences in paragon points, gear rolls, etc (we're talking about Area Damage here). Any GR over 120 would guarantee several freezes, and adding more players would make it worse. On a 120+ 4 player she'd get anywhere from 6 to more than a dozen freezes, while I got none. She'd look over at my screen to see if she's going to be alive when it unfreezes. This was what put me on the hunt to find out what the difference between these two laptops.
One of the first things I found, which did make a noticeable difference, but still not "fixed". Nvidia offers "upscaling", and this was turned on for my wife's laptop (the one plagued by freezes). If you are using an Nvidia GPU based graphics, make sure this is turned off. Go to Nvidia control panel (right click Nvidia tray icon and select control panel), in "Manage 3d settings", look for "DSR - Factors", and set this to "off". Upscaling will make your GPU work much harder than it needs to and could lead to heat, power, and consumption issues on the GPU.
Next up, make sure Windows is up to date and no updates pending. I've had performance issues on both laptops with Windows updates happening in background or needing reboot to complete. This typically wouldn't lead to long-standing performance issues, but it's another box to check. Also check for BIOS updates from your PC or mainboard vendor to see if you have latest update, and if not, does latest update have performance or stability improvements.
Next, I used Windows tools to see what's going on during freezes. We both have dual monitors, so we can have these displayed on one screen while playing D3 on the other. I recommend looking at task manager (performance tab) and resource monitor. If you see spikes in the disk graph during freezes, then you can use resource monitor's disk activity pane to see exactly what files are being read / written during the freeze.
If it's pagefile.sys, you have memory pressure. Memory pressure can be relieved in one of two ways: 1). Close ANY non-essential apps while playing D3, this may include browsers and you may have to use another PC or phone for looking up builds, etc while playing. I've also seen Battle.net using several GB of RAM doing some background update, not something I want going on during a high GR. Battle.net doesn't need to be running once the game is launched. 2.) Buy more RAM.
If it's D3 datafiles, make sure you have D3 installed on SSD. If you don't have SSD, having lots of RAM for disk cache can help but SSD is highly recommended.
TL;DR...
Here's the magic. You can verify it before doing anything. Open up file explorer, go to your D3 install folder. In the x64 folder, you should find a text file named "D3Debug.txt". Just open that up and take a peek. If you see the message "FMOD Error sound not ready in 200ms", then the issue is the sound module. Oddly enough, my wife has sound disabled (the box for enable sound is unchecked in the game), but these messages were appearing in this log every time the game froze. I found some obscure post on Bliz forums where someone swapped out msvcp140.dll and vcruntime140.dll in the D3 install folder and their fmod errors (and freezes) were fixed. This prompted me to check which version(s) of Microsoft Visual C++ Redistributable (Where these files usually come from) I had installed on my laptop vs. hers. Sure enough, I had 2015-2019 installed, and she did not. Here's where things get a little tricky. Installing the latest 2015-2019 from MS site will result in the same freeze / performance issues. It has to be a known working version. I found a download link for the specific version I have installed (14.28.29913), and installed that on my wife's laptop. After changing sound option to 16 channels in D3, she can now enjoy D3 without the damned thing freezing every 2 minutes, even with the sound on. Below is the download link for Visual C++ Redistributable from Microsoft:
Installation instructions. This part is actually pretty easy. First, check that you don't already have Microsoft Visual C++ Redistributable 2015-2019 installed. Click the search icon next to the windows logo on your system tray, then type "add or remove programs", and click the "Add or Remove Programs" search result to get where we need to be to check for and remove this package if it's already installed. You'll be brought to a settings page with a list of installed apps, if Microsoft Visual C++ Redistributable 2015-2019 is installed then you can hover your mouse over it to see which version it is. If it is NOT installed, you can skip ahead to installing from the download link.
If it is installed and the version is not 14.28.29913, then click it, and select "uninstall".
Next, Just run the installer from the download link, and reboot to complete the install. That's it, enjoy!
How the hell does this work? Seriously, I'm at a loss and can only come up with the one word answer "Windows". When the game is started the DLL search order is such that the DLLs get loaded from the game directory before looking in Windows\System32 where we installed our redistributable. I verified this with Process Explorer, The newly installed DLLs don't even get loaded, and the msvcp140.dll and vcruntime140.dll are still loaded from the D3 installation directory. The only processes I see loading the new DLLs is Nvidia container and Nvidia share. I suppose there's some possibility that the fault is actually something with Nvidia interaction and the sound module errors are just a symptom.