FPS causes logic malfunction?
This is possibly related to the issue of Delta Time issues. I am not familiar with Blender as a game-engine, but this is a common issue in game programming.

For those not familiar with the issue: The amount of movement the engine needs to make between frames depends not only on the mathematical/physics calculations, but needs to consider the time (in real life) it takes between two frames, ans use it as factor in any transformation (translation, rotation, scaling) to mitigate lags. This factor is known commonly as deltaTime. 

It seems like blender game-engine doesn't have a built-in deltaTime factor you can use, but this post seems to suggest you could easily create it.

Blender seems to be even more peculiar on the issue, by trying to use a fixed frame-rate of 60fps to calculate physics, and that decision is most likely affecting you. I suggest you read this post by SolarLune and try out his and MrPutuLips's solutions.