I do not have a final answer ... but the first thing I would like to see is the configuration parameters with which the kernel was compiled:
cat /boot/config-`uname -r`
Parameters that, in my opinion, may be relevant are CONFIG_HZ , CONFIG_HPET_TIMER and CONFIG_HIGH_RES_TIMERS . Perhaps they differ between your kernels ... this can help you narrow it down.
It used to be on 2.4 kernels that would wait, waiting less than 2 ms, if they are executed in accordance with the real-time scheduler policies ( SCHED_FIFO or SCHED_RR , see nanosleep man page ), but since all the kernels are 2.6, this is not seems like a factor.
Martin B
source share