Thanks Noel for the clarifiations!
Ok, given that Sonar is hardwired to record midi events at a timer resolution of 1ms, stored with values at a 960 timebase, I think Steve's operating method does make absolute sense to get closest to what is actually happening in the hardware, given that we have no control over the actual timer resolution used.
The reason is because the 1ms intervals do not necessarily land evenly on 960PPQN tick intervals. In fact it completely depends on the tempo. This does not mean that anyone is getting sub-millisecond timing. Nobody is. The best you can expect is 1ms. But, because of the MM timer and the midi clock timer not necessarily being synchronized, errors can result there too which might cause a little jitter right around 1ms.
For example:
At 120BPM, 1ms = 1.92 ticks
When the MM timer goes to get whatever is in the midi buffer, all the midi events that have been received within the past ms are given a timestamp to the same tick. They are going to be rounded off to the nearest tick.
at 180BPM, 1ms = 2.88 ticks. You see the advantage? When rounding off to the nearest tick, there are more ticks to choose from for the rounding. A higher tempo gives you better rounding to the nearest tick essentially.
I suppose if you wanted, you could figure out which Tempos would theoretically provide no rounding errors at all, but its a bit moot since the MM timer is not guaranteed to be in sync with the midi clock ticks, nor is the MM timer that accurate, so eliminating as much as possible the rounding errors seems to be the best bet here, combined with using the best midi interface you can find, preferably not USB.