Make 'something' fps independent by using dt is exactly what behaviors (bullet,platform,timers ...) and also 'wait' & and every X seconds do already.
Same system means same problems when crossing the limits.
(is 10 fps not a bit to low ?)
If you want to accurately measure time, use the system expression 'wallclocktime'.
But even then, you are, well, a little bit screwed. Say it runs at 10 fps. Then 1 tick will be one tenth of a second.
Or, comparing recent wallclocktime to previous wallclocktime happens every 1/10 of a second. So the error is a average not accumulating dt.
Still better then an accumulating error each tick, when going lower then 30 fps.
Sorry if sound confusing.
But, in the end. It might be better to optimise the game. So it dont run lower then 25 fps. That is the best solution.
And do you really want to support devices that are not even anymore supported by there manufactures ?