The UI for this might be tricky, but maybe one way to do it is to let the “press key on external hardware” prompt detect multiple simultaneous codes and let those be assigned to a key.
I would also like to vote for suggestion #3 (designating controller buttons as modifiers). Ideally, I would like to be able to set at least 2 buttons as modifiers, and to be able to combine them (e.g. L1 and R1 (left and right triggers on the controller) are set as modifier keys, X button on controller maps to one key, X+L1 maps to another key, X+R1 maps to a third key and X+L1+R1 maps to a fourth key).