Ok, I was thinking about point 3. It can be done in two ways. First way is harder and I will not work on that now, however second way is easy and can be done quickly. You can bind to gamebutton button special action called “modifier”. Then if is this modifier pressed, we can check other buttons for that modifier and execute another actions. But gamepad button with bounded “modifier” cannot be used for something else.
Other way allows bind to f.e A to L1. And you can do another action with L1+R1 for example. But this needs various delays for checking. This is harder for implementation and I wont work on that now. Anf these delays may be not welcome by shooters or other quick actions.