This will not work if your framerate is slower than your desired fixed update rate. For example, your UpdateSimulation() function will never be called faster than 40hz if your framerate is at 40hz.
The way @bytesleuth and I suggested is the correct way of doing this.
No I need it to work that way. DeltaTime is useless for my game as it is a cellular automaton game and works under ticks per second (or Hz). I dont care if the game can slow down, I just need it to stay within 60 TPS/Hz.
Another thing to, the slowdown from low end devices is a good thing, because it wont put stress on the device from trying to update the game multiple times a frame to keep up consistency. This will also allow the game run higher in framerate too.
The game also has a feature where you can set the TPS (e.g. 60, 40, 25, etc)