It's actually the call to hidKeysDown that fixed the buttons, the hidKeysHeld fixed the dpad so events are registered if it's held down.
I doubt changing the polling type in retroarch will help as I reproduced the issue outside of retroarch separately but I agree it should be confirmed:
I...