changed testing implementation of setTimeout to use requestAnimationFrame in hopes I could get to microsecond precision for tests.  Unfortunately, it didn't work.  More effort is needed to debug the reason why.  I'll leave it in for now as it does work at the same precision as setTimeout does.