Solid work. I feel it's worth pointing out, the infinite jump bug has never been reproduced outside the live server. Something to add as well, and I know this isn't you but more a problem with the original plugin (and all plugins made by Cannon for that matter), but you might want to adjust the hardcoded values. There are a lot of them littered throughout the plugin, and if any of them don't exist it'll cause a server/client crash.
(i'm going to keep editing this as I think of more things to add)
I would have personally checked up with devs before posting this, because if it doesn't work (and I doubt it fixes the infinite jump bug if I'm being truly honest), it gives people false hope. Even after I've stopped doing dev work I am still asked to rewrite this plugin at least once a week (I don't even see the appeal in it tbh).
You've changed some of the returncodes to nofunctioncall and this will cause plugin conflicts. You really shouldn't do that unless you are absolutely sure the action wont be used in more than once place. I.e. the dock_call function call could have a massive fit if someone tries to dock while having a pending request. LaunchPosHook can bug up with PoBs since they both use the same structure as the temp ship store.
Looking at your code, you are creating new threads. You need to do proper thread management if you go down the route of multi-threaded behaviour because this code would absolutely not scale well. Like, I really need to stress that. You need to properly terminate your threads and not create one inside a for loop! Small scale, threads work quite well and it's difficult to see where errors may appear. But I'm reasonably confident, looking at your code, that this would scale horrible on the live server, given how many threads you are creating, and how you are just letting them run, rather than properly identifying, segregating, detaching, and terminating them.