Closing as not a bug; you cannot expect this precision with any game engine.
Most games run at 60 FPS, which means each frame takes about 16 ms. The game logic runs every 16 ms as well. If you say "Every 0.01 seconds", you probably mean that to run every 10 ms. However by design the 'Every' condition never runs more than once per tick, so you lose 6 ms every time it runs. The correct solution is to use dt.
Edit: note your dt logic is also incorrect. If dt > 0.1, you must subtract 0.1 from dt, not set it to zero. Otherwise if dt = 0.11, you set it to zero and lose 0.01 seconds; if you subtract 0.1, it's left on 0.01 so you compensate for the inaccuracy on the next event. You'll also have the same framerate problem with the 0.01 case.