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.
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.