After 2 weeks of trial and error, finally managed to boot Windows diskless over ipxe.
ISCSI Console (http://mistyprojects...csi-console.htm)
Tiny PXE (https://reboot.pro/f...iny-pxe-server/)
Windows ADK PE addon (2004) (https://go.microsoft...?linkid=2120253)
Windows setup (22H1) on USB STICK (less of a headache to setup IMO)
Run and configure ISCSI Console (http://mistyprojects...csi-console.htm)
I recommend to make a vhd image of at least 30 gb.
Install Windows ADK PE addon and grab winpe.wim from C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\en-us and rename it to boot.wim
Also grab the rest of the files needed to boot from the windows installation iso/usb drive and follow
Configure Tiny PXE server.
The biggest headache i had here was with ipxe-snponly-x86-64.efi (downloaded from git). For some reason, using it, windows kept disconnecting the SANHOOK while starting up the PE and could initiate the target even after using wpeutils initializenetwork. Using ipxe-x86_64.efi works with some Windows PE versions but i couldn't boot iso images.
Insert the USB stick into the client, sanhook the iscsi drive, boot the windows PE (use wpeutil initializenetwork if the target is disconnected) and run the windows setup from the usb drive with c:\x64\setup.exe or c:\setup.exe if path not found. Install windows normally, you don't need to manually create partitions
1. Disable windows update from Local Group Policy
2. Disable pagefile or you with get IRQ NOT LESS THAN EQUAL BSOD:
Stop ISCSI Console, mount the VHD file and :
a. In regedit, load hive \Windows\system32\config\system under HKEY_LOCAL_MACHINE
b. Within the loaded hive, locate the PagingFiles key under \SYSTEM\ControlSet001\Control\Session Manager\Memory Management and blank the string.
c. Unload the hive.
That's it. Hope i haven't missed anything