Let me know if I am missing something, seems to me the latency problem is solved easily with adding just one feature, if Attribute is used and when adding a command to trigger that key switch (say Sustain) there can be another entry says if those notes are assigned to that key switch shift them backward 300 ms.
Example: Longs are triggered with C-1, staccato is triggered with F-1, additional entry in that KS command specifies note is shifted backwards a specific ms per user based on library used, F-1 could be -20 and C-1 could be -300ms. In they key editor you assign notes to that articulations by attribute and system know these notes should be shifted -40 or -300 but you don’t see that on the key editor, note still look quantized.
Should not be very hard to program this feature!