1. Make movement a toggle. That way the player can set a vector for their character then look around while moving forward (or backwards?), moving the upper body and head. If its gamepad controls you could double tap D-pad controls or press in the joystick button once you've set a forward speed. The character can easily re-orient by looking the direction they want to move and resetting the forward movement toggle.
2. Use one key for both but make it look and context sensitive. If the player looks down and hits (Y like you suggested) button the character ducks, if they're running the character dives forward. If the character looks at a ladder they hit and hold the button to climb. A multi-purpose action key.
3. Since your movement is already toggled I would use variable joystick controlled speed. However some players might get frustrated waiting for the character to get up to speed to set sprint speed. Holding the action (Y) button and toggle forward movement could set a sprint. This only becomes an issue near context sensitive things like ladders or consoles.