Don't worry, happy to help. You've done a deep dive into SDL's code, beyond what I know, and I don't think I'm doing anything unique in my app.
This is how them momentary buttons work:
case UI::RumbleLeft:
SDL_RumbleJoystick(joy, 0xFFFF, 0x0000, 64);
break;
case UI::RumbleRight:
SDL_RumbleJoystick(joy, 0x0000, 0xFFFF, 64);
break;
And that's called every `SDL_AppIterate`, which probably means them data packets are being spammed. Maybe not the best way of doing it.
How does the strength compare to the rumble test page under "More Tests"? You can toggle the rumble on/off with the checkboxes.