TLDR: Update
Unity использует покадровую систему, то есть "вот новый кадр - обновим состояние". Это ключевой момент для понимания вашего вопроса, потому что появляется понятие тайминга, в который невозможно попасть способами, выполняющимися с постоянной периодичностью. Это почти как стрелочные часы без батареек. Могут ли они показать правильное время? Да, два раза в день на одну секунду.
Речь идёт об использовании FixedUpdate и рекурсивного Invoke, а также корутин (без yield return null).
Так как вы о LateUpdate не спрашивали, то и углубляться в него не будем. Остаётся только Update.
Используемые методы можно поделить на две группы - кадрозависимсые и кадронезависимые. К первым можно отнести Input.GetKeyDown, ко вторым Input.GetAxis. Если с кадрозависимыми всё понятно (нелогично их использовать вне Update/LateUpdate), то кадронезавимые возвращают разные значения как для разных таймингов, так и для разной продолжительности нажатия. Поэтому для них можно и так и этак и будет это чисто особенностью вашей игры. Такой же как, например, реализация 2д поворота через scale, rotate или sprite flip.