I would also like the ability to have pregap tracks in the correct order.
I don't care what the number is though. It could be track 0.1, or -1 instead of 0.
This works. You can tag a track -1 and it'll sort in the proper order (and -2, -3, etc continuing on in reverse order).
[Track #] is, internally an int32 field, which means it can contain signed integers from -2,147,483,648 to 2,147,483,647. 0 is just special inside MC. Because in C++ (and many other languages) null is 0 for an int (they aren't nullable), the only way to have a "clear" value (that doesn't show in the UI at all) is to assign it 0. Or, I suppose, you could choose some other value at random to stand in for null (which would be bad because it would be impossible to "figure out" unless you knew the secret)...
It is a decent compromise. Since these tracks are few and far between, I'd either use -1 or disable
Tools > Options > Tree and View > Sorting > Sort Empty Strings Last.