Cover non-null callback registration before init, post-unregister noCallback state on duplicate unregister and device registration, and null parameter initialization.
BunnyFl ran firmware 13.42's libSceBluetoothHid natively. A null block
given to sceBluetoothHidParamInitialize returns 0x81540001, so it now
returns InvalidArgument instead of throwing, and the test checks that
answer. The run also shows sceBluetoothHidRegisterCallback reading the
event thread's priority and affinity through the stored value, which
makes it the BluetoothHidThreadParam pointer the signature declares;
the debt entry cites the run and its limits.
The implementation checks initialization only and ignores the vendor and product IDs, so unregistering before RegisterCallback returns 0; NoCallback is a RegisterDevice and callback-path result.