Man, I’m really not a proper person to give advice for this situation, but as I came across the topics of the forum and saw this decently detailed and accurately composed question with absolutelg no replies - brother, i feel you. all these niche questions in music production that are being ghost-posts here and there before anyone who can reply from his experience shows up - damn, i’ve been there.
so just to maybe give a (possibly, but doubtfully)-right direction for trying to fix those inaccuracies, I’ll just share my reply. unfortunately, haven’t had a chance to MIDI-sync any external sampler machines to ntrack or iOS in general, but while I was reading the question, I was having a thought of what I would perform in attempts to fix this issue based on my experience of syncing a bunch of stuff (DAWs, midi FXs, Audiobus Sources, hardware i/o all in one project to be able to use those multiples in a synced playback on iOS through its virtual midi port).
There’s a chance that u may have AUM on your machine already (or maybe at least heard of its possibilities). If so, I would try setting up all clock-related connectivities through it, with n-Track slaved to it . While basically you would want to avoid any additional “medium” software to minimize the CPU load, AUM is actually a connectivity hub that makes its own presence almost insignificant for CPU/DSP when used for those purposes and it rarely seems to be crashing despite any unexpected “spikes” that some of others struggle to survive and just spit you to your home screen every once in a while.
So returning to the subject, the app should be also able to recieve any incoming external clock via hardware input (option can be turned on through MIDI CTRL menu → Parameters → Recieve MMC) and after properly aligning this signal with its own it should be able to pass it through to nTrack with much less chance for it to be innacurate.
And if any small inaccuracies still occur, you have the ability to correct those in necessary amount of ms as for the hardware input signal as well as for the virtual output to other slaved apps independently of each other.
Besides, it has a very smart-ass MIDI parameters routing functionality built in, so figuring out how to route those that u mentioned shouldn’t be a much of a time consuming task.
Hope that at least leads you anywhere close to solving your issue - i’m just brainstorming here.
Good luck!