Asus has a pretty expansive UEFI/BIOS setup utility, much more that I am used to seeing with my old junk.
In your Boot section, to start Windows... you probably need "Launch CSM" to be enabled as well as the Legacy option shown with UEFI. This seems a bit redundant as CSM and Legacy are basically the same thing. But one or both of these allow your Windows to boot on the "msdos" partition instead of GPT. If you choose to do the MBR-to-GPT conversion, you may be able to leave these settings alone, or you could try to change one or both of them to be UEFI only after the conversion.
Keep in mind that if you do the MBR-to-GPT conversion, GRUB may still fail to detect Windows to achieve your goal. Changing one or both of those Boot settings might help GRUB (and
sudo update-grub
) to work, but we can't predict for sure that it will. There may be other things that are the real problem, while we have been chasing GRUB as the culprit.
The problem may be with the difference(s) between the NVMe and SSD drives. If the MBR-to-GPT conversion (and Boot section tweaks) still fail to make GRUB detect Windows, it may work to switch the drives: putting Ubuntu on the NVMe and Windows on the SSD. That is a lot of effort, and it is only another guess. It may still fail to do what you want.
Another guess... if you do the MBR-to-GPT conversion, both drives will have their own independent ESP (EFI System Partition) where each of their bootloaders is stored. You wanted to keep them independent, I know. But, you may could follow Wizard's directions in
post #30 and instead put the Ubuntu bootloader on the same drive as Windows. This is actually how dual-boot setups are done on a single drive, but you would lose some of that "independence" and it could give you trouble later if you decide to make changes again. (Not as much trouble as you're having now, probably!) With the bootloaders physically stored on the same drive (and everything UEFI compliant), I would hope that
sudo update-grub
from Ubuntu would finally see Windows. But I can't promise that. If it does work, the question then is if your BIOS Boot section can tell them apart on the same drive, so that you could make Ubuntu the first in the boot order. But if BIOS can't do it, there is another way to make GRUB first. Warning: this is a scenario where a Windows Update may someday break this configuration. It can be restored again, but it will be good to remember how to make GRUB first in case you have to do this again.
Similar to the above... instead of putting the Ubuntu 18.04 GRUB bootloader on the Windows drive (after a conversion), you could do a fresh install of Ubuntu 20.04 and during the installation tell it to install the GRUB bootloader on the Windows drive. I don't know if you're ready to use 20.04 yet, or not.
GRUB is a very capable bootloader and can easily boot older MBR and newer GPT both... usually. The trouble here is still confusing. Wizard boots 30-40 (or more) distros on a single computer, on a single hard drive I think, so he knows GRUB way better than I ever will. Ah, but I don't think he has Windows on there!
Before you decide, let Wizard chime in on these suggestions, and maybe he can offer other alternatives. It's beer time here!