Ok, yeah, that definitely clarifies the situation with time, and should be relatively easy to change in my version, so thanks. It obviously raises some questions with if it's trying to sleep for less than the time it takes to switch states, at which point I assume it would immediately wake up upon moving to sleeping.
I did actually use the web based version with the example files given on the project page for the commands and sys config, and that was when it added the extra 2 microseconds. Next time I do it, if I still have the same problem, I'll send a comparison screenshot.
For the integer thing, it's more the problem that when waiting for IO, due to the speeds and amounts of data, it becomes a double upon dividing, if divided correctly. But it the system time has to be an integer, then I'd have to consistently round up. Which means I wouldn't have to use doubles. My approach doesn't move through time by one microsecond at each point, and instead just skips to the next time. This is why this is more of a problem.