To clarify, when you reboot, app A isn't accepting keyboard input until you restart app A. Once you've done that, if you reboot again, does app A show the same problem?
Also, going backwards, if app B isn't accepting input and you link the kio_<X>.so files with <X>.so links, does app B accept input?
You've probably already worked through that, but I wanted to be sure of the details.