@josh-k Hi!
The way we get around the keyboard not showing is to report as a "Consumer Control" device, which is what tells iOS that it might not be a full keyboard, thus still showing the on screen keyboard.
It seems that this is also what imposes the limitations on sending key codes to a web page.
Sadly, in my testing I could not find a combination where the on screen keyboard was still visible and at the same time getting key events through to an unfocused web page.
We are still on the lookout for a workaround for this but right now I'm afraid we don't have a solution.