You need two separate SSDs. One for Linux, one for Windows.
Install Linux on SSD-A. Make sure it has an EFI system partition with a bootloader in it (GRUB, systemd-boot, REFInd), don’t use an efistub. If the installer is done, disconnect the SSD to be safe.
Install Windows on SSD-B with the desired updates. It will create its own EFI partition.
Optionally, you can create a separate NTFS volume for your C:\Users so you don’t have to mount the entire system on Linux if you need to access your files.
Boot into Windows. Use a tool to completely disable the updates. I use WinUtil by Chris Titus.
Reconnect SSD-A.
Boot and enter the firmware configuration. In the boot device list, make sure SSD-A has a much higher priority than SSD-B! You can even remove SSD-B from the bootable devices.
Boot into Linux. In the bootloader configuration, create an entry that targets the Windows C: volume on SSD-B.
Alternatively, you can just use the firmware’s boot menu to boot from SSD-B.
Done. If you need to update Windows, physically disconnect SSD-A and boot from SSD-B.
Separate hard drives one for windows and one for Linux+GRUB then grub just needs to be told where the windows boot loader is and BIOS should load GRUB default.
OP post happens when you attempt to just use partitions. It can work per other comment, just more fragile.
is there a way to avoid this? and what workflow should be in place ahead of it happening if not?
You need two separate SSDs. One for Linux, one for Windows.
C:\Usersso you don’t have to mount the entire system on Linux if you need to access your files.Done. If you need to update Windows, physically disconnect SSD-A and boot from SSD-B.
Separate hard drives one for windows and one for Linux+GRUB then grub just needs to be told where the windows boot loader is and BIOS should load GRUB default.
OP post happens when you attempt to just use partitions. It can work per other comment, just more fragile.