It seems newer devices need more weird empty transfers in order to function.
The Loke protocol supports 32-bit unsigned for the size of files being flashed. However, POSIX file commands only support 32-bit (signed). As such we now have platform specific support for larger files.
The resume boolean did not have a default value set. Consequently if the memory address containing the boolean was already non-null it resulted in the heimdall CLI binary being called with the --resume flag even though the Resume check-box in the UI was not checked.