This time results from communication time, module service time, buffering time, base period, etc. The device is made of very simple and easily accessible modules, so you can build it yourself without specialized tools and skills. About 1 ms is the total delay time that I can achieve on my laptop - my configuration has a base period of 30 us - no more is needed, and my computer cannot do much more (the computer is not specially selected; it is already an old average). The delay is counted in read-write communication, i.e., it is the propagation time of data in the input-output FIFO buffers. 100 kHz gives 10us, not 5us. Theoretically, every 10us, it is possible to change the signal, which does not mean that 1 ms is buffered. In my case, the buffer time is currently 240us input and 240us output, which, with a base period of 30us, gives 8 samples in the FIFO input buffer and 8 in the FIFO output buffer. The remaining delay time results from network communication, communication support via the uC, and the W5500 module - as I wrote, these are very simple modules and have some limitations. Most of us, when using the LPT port, focus on the base period, and the servo period leaves the default of 1 ms (I think). In my opinion, this is an incorrect approach, and the servo period should also be minimized (at least 2 times the base period), so we should have a modern, efficient computer for LinuxCNC. For example, we can measure on an oscilloscope what the delay will be between reading and writing on the physical port LPT 0x378 with a servo period of 1 ms. We will connect the input as a limit signal (blue graph) and the output as an amplifier enable signal (yellow graph).
It turns out that the delay varies up to 1 ms because the servo thread manages the response. This is also crucial in threading, as the servo thread determines the start of the cycle. If we minimize the servo period (in my case, 30us base and 90us servo), the delay tested in the same way may yield a similar result on Linumeric-LPT V3.
The conclusion is that with proper and accurate configuration of Linumeric-LPT V3, the results will be better than with the standard 'ill-thought-out' configuration of the physical LPT port.