Но с этим возникла другая более отстойная проблема, при ограничении fps смарт стал реагировать с заметной задержкой на тапы.
Во всех игровых движках игровой цикл делится на две части: обработка физики (PhysicsUpdate, _physics_process и т.п.) и обработка логики/пользовательского ввода (Update, _process и т.п.)
Отслеживать ввод вам нужно внутри обычного апдейта с максимально возможным фпс. А вот уже применять физику (т.е. двигать объекты и т.п.) нужно с применением апдейта физики с дельтой времени кадра.
Вот норм туториал на тему -
https://gameprogrammingpatterns.com/game-loop.html