i think your axis calculation is kind of useless because the controller object has a deadzone property, it would work better to use that instead and let the user modify it
I used as a reference my 2 generic controls from different manufacturers. C2 could not register the input of any of the directional Dpad commands. In these controls Dpad only worked for Axis. In the annual Gamepad plugin measures as the default value of the dead zone equal to 25. With Xbox control the dead zone comes close to 20, while the generics, both have the dead zone at 0.3