Well, I think that I've been a bit stupid because despite all the goofy interceptions and stuff, it's probably just a case of the keylayout. This is /system/usr/keylayout/gpio-keys.kl for the Poke3.
Code:
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 102 HOME
key 528 FOCUS
key 766 CAMERA
My dtb in boot.img only has VolUp (and no VolDn), which is strange.
Here's a simplified diagram I just made of how keys work. Your side keys are lots more complicated because they are intercepted somewhere and they get turned into a string and get processed through res/raw/keypad.json (or res/raw/bt_keypad.json) in /system/framework/framework-res.apk. That causes your PgDn to work only when you release the button (instead of when pressing) because it has to wait to determine short/long press. I defeated that on my Poke3 because it drove me crazy.
You're going to have to change the keylayout. Me, I'd change the dtb too (because it's easy and just a single change to the boot.img that doesn't need to be a Magisk module).
In any case, your first step has to be getting boot.img so that you can Magisk.