The vtimer return value is treated as u32.
Keep more careful track of microsecond time.
Use the us based time for rtc/etc.

Instead of incorrect conversions from ticks based on current mhz.
Use CoreTiming::GetGlobalTimeUs() for vtimers.