The dynamic samples are largely uniform, and do not vary a huge amount. They tend to be 6 or 8, 3 or 4, and 2 or 1.5. You might think if the samples were all exactly the same length everything would be easy. But actually it wouldn't.
Because you will find that each musical phrase you are applying a real time dynamic to will vary in needed length on a moment-by-moment basis depending on the music and the tempo. So if you have everything exactly the same, that still won't make it match perfectly. I have often adjusted start and stop times of notes because of this. You can also add expression at the beginning or end of a note. But the best way to deal with it is with crossfade dynamics. This works so well with any ensemble artticulation that you cannot tell the difference between them. I once tried A/B-ing real dynamics with crossfade and they were indistinguishable. For example, if you program a sudden mod change on violin ensemble, ramping down from full in a half second to minimum, you instantly have a sforzando that can then crescendo back up at any speed. So the ensembles can be used for any dynamics with crossfade. Also, though many people believe you cannot use crossfade on solo instruments, actually you can usually do it in an orchestral context, because the phasing that sometimes occurs between layers (only on certain bright sounding instruments like trumpet, oboe, etc.) is not usually audible unless it is in an actual exposed solo.
One other thing that can be used is of course the time stretching facilities of VI. I haven't even had to use that because of the combination of crossfade with real.
The main point is that using real pre-recorded dynamics is never going to be perfect and will require compensations of various kinds even if you have totally uniform timing in the samples.