You know, I was just thinking that a long jump version calculation doesn't have to be quite as complicated as I set it out before. All we're really looking for is to consolidate all the jumps we would normally do on a single tank of fuel into one long jump that takes about the same amount of time. So to do that, we don't need to worry about speed or any of that. All we have to do is just use what would normally be the max jump range and just add an arbitrary hold in the witch space loading screen for a set number of seconds for each multiple of that base jump range you're travelling.
So for example, you might normally have a max jump range of 20 ly with the regular FSD, and let's say your fuel on board will give you five jumps for 100 ly between refuels. The only change to the programming for the long jump version would really be to use the max fuel range (which is already calculated when route planning in the existing navigation system) as the new max jump range. Then all they have to do is use the normal jump range as a counter to measure how long to hold us in the jump animation. So if you're jumping 20 ly or less, you just jump like normal. If you're doing 20 to 40 ly, it holds you in witch space for an extra 50 seconds to account for the time you'd normally spend preparing for a second jump. For every multiple after that, you just add another 50 seconds to the hold time until you hit your max jump range based on fuel. So a full tank would get you 100 ly and take about 250 seconds to complete the jump, just like doing it the way we do now. But instead of having to manually jump five times, you just sit in witch space for a few minutes.
The awesome part is that I don't think it would require any real restructure to the way everything works already. You could still engineer the drives and use existing modules to increase the regular jump range just like we do now, and because that regular jump range would be used as the counter for the long jump part, everything should work out pretty much the same. All they'd really need to do is just create a new module that tells the client to use the long jump calculation instead of the basic one. If you have the module equipped, it uses the long jump version of the calculation. If you don't, it works just like it does now.
I think it could really be that simple.