First a few comments on the future of MIDI tracks...
Live adjustment of pitch is relatively easy. It just It just adds/subtracts a value from the recorded MIDI note number. Other systems usually call this transpose, I might call it that or have it under the old PitchShift family of functions which are disabled right now for audio tracks but would be trivial for MIDI tracks. Instant transposition up or down is definitely on the list.
Adjusting timing is harder because there are far more opinions about what that actually means. It could be as simple as snap to a sixteenth note grid, or as complex as selecting from several "swing" levels. I wouldn't mind adding those but it would take a lot of discussion about how that should work.
For offline editing, there are several options, Snapshots are one, you can also use Save Loop/Load Loop from the main menu for individual loops, and there are script functions to do the same thing. I'm interested in how you would use this live.
Loading anything from files will cause a small delay for audio, it should be practically instant for MIDI but I can imagine that if you are loading a file over the top of a loop that is already playing this could cause timing glitches. That's an interesting use case, it should try to blend in the new sequence over the old one so that it picks up playing exactly where it would be if it had been playing all along. So it sounds seamless.
"Perhaps simpler would be to add a specific "ReloadMIDIFile" action that just pre-loads the new midi and swaps it out at the next loop start."
Ideally this should not be necessary, but you can accomplish what I think you're talking about with the LoadLoop function in a script loading into a different loop than the one currently playing, then switching loops later. It's kind of like "double buffering". You've got two loops you swap between, one is always playing, and one is in a state of reload, then when the load finishes you swap to the other one.