(as an aside, 1) and 2) would both be fixed by using qtsixa to set the controller as an input device rather than a joystick - but I don't know if it will work as both. The qtsixa gui warns against having them as both, but I can just edit the /var/lib/sixad/profiles and setup a sixaxis controller to be all keyboard presses while also enabling both of the joysticks - anyone with experience at this is also welcome to chime in.)
The work around recommended for 1) is to suspend/resume xbmc with an intermediate script that is given to RCB/Adv Launcher in place of your emulator:
killall -STOP xbmc.bin
/usr/bin/zsnes -s -m -v 22 "$1"
killall -CONT xbmc.bin
But it doesn't work - it launches the rom just dandy but after quitting zsnes (with a sixaxis button bound to Esc) xbmc is just sitting there like a quadriplegic after a house fire.