It executes with no issues when I run it under /tmp; it's only when I move it to the SD card and try running it there that I get errors.
Odds are the binary's not compiled for ARM.
If it wasn't compiled for ARM, how could it possibly work in /tmp?
I've tried removing the noexec from the mount options in /etc/usbmount/usbmount.conf
Did you try to remount it manually with 'exec' option rather than spend time for messing with usbmount.conf or fstab?
mount -o remount,exec /mountpoint
That way you would at least find out if the problem has anything to do with the mount options.
But before trying that it is good to see the current mount options by running:
cat /proc/mounts
(Do not trust /etc/mtab or the output of 'mount', as they do not always show the actual mount options).