If the framerate dips below 10 fps then dt is capped at 0.1 so time passed won't be accurate. Usually you design your game to run much faster than 10fps so that isn't really an issue.
If you really must have it be correct with a framerate below 10 then you could use the wallclocktime expression.
Basically add this to the top of your event sheet, and then use mdt in place of dt everywhere else.
global number mdt=0
global number prevTime=0
> set mdt to wallclocktime-prevTime
> set prevTime to wallclockTime