Fixed race condition in GetTimeUS

SystemTiming and SysTickValueGet can be interrupted between. Fixed with a
simple loops that loops until SystemTiming doesn't change.