@xardoniak Well to start breaking this down, do you have a physical computer on the same subnet you can test with?
Really we have 2 timings to consider. The first is the transfer of the linux kernel and initfs via tftp, then you have the kernel startup to end that timing. Once the kernel is up and running it uses nfs to connect to the FOG server to load the squashfs that has the actual OS image. Once the nfs bit happens that starts the second timing. tftp is the slowest of the protocols but that is only used to get vmlinz and initrd over to the target computer, the rest is done by nfs.