I've got a similar problem with a laptop that has two identical monitors attached via USB-C. If both are on the same USB-C port (via a USB-C hub) the laptop can't tell them apart, and it's 50/50 which becomes the primary monitor when waking from sleep, if both of them wake, which isn't always the case.
I've fixed the primary monitor issue by connecting one monitor to the Laptop USB-C port that is the specific NVIDIA GPU port, and the other to the Thunderbolt general USB-C port. Now the one on the NVIDIA port always wakes and becomes the primary, and "usually" the one on Thunderbolt port wakes up as well a few seconds later. It still doesn't always wake up though.
I've done a fair amount of experimentation, and it seems that when the 2nd monitor doesn't wake up it must be at least partially there, as Windows (11) reports it as being there if you scan the USB ports for Monitors. Similarly, apps that were previously on that screen appear to still be there as the mouse happily disappears off the side of the good monitor into the black.
What I've found recovers the situation most of the time is the following PowerShell script. I've just rolled it into a Event Driven Task that launches it every time the laptop comes out of monitor sleep mode, so we'll see how that goes. Here's the very simple version of the script:
#Run through various screen modes to make the connection re-sync
#1 = /internal
#2 = /clone
#3 = /extend
#4 = /external
DisplaySwitch 1
Start-Sleep -Seconds 2
DisplaySwitch 2
Start-Sleep -Seconds 2
DisplaySwitch 3
If that doesn't work, pulling the power on the monitor and plugging it back in always does work.


