A simple solution:
In the OnMove method always store the last input value:
void OnMove(InputValue value) { m_lastMove = value.Get<vector2>(); . . .
then when you set canMove to true, also update the movement to the last set value:
IEnumerator WaitForBendAnim() { yield return new WaitForSeconds(0.6666666f); canMove = true; moveInput = m_lastMove; }
If you have more complex state changes I would suggest to use the state machine-pattern to control the transitions between states.