Huh, I just posted a longer answer to Dave's previous post but it doesn't show up. So I'll write again.
I just read into the XID protocol and looked at the abstraction layer http://cedrus-opensource.github.io/xid_device_library/d3/dfe/a00025_source.html. It offers some basic function to control an XID responsepad, such as get_next_response() and clear_response_queue(). Inquisit must be using these to control the Cedrus response pads. Apparently, my problems arise due to a very particular combination of circumstances.
(1) The XID function get_next_response() pops the oldest element from the queue, thus reducing queue length by 1.
(2) An XID responsepad offers three basic modes of signalling: continuous, pulse and doublepulse. Obviously, what I would require is "continuous" but Inquisit initializes to "pulse".
(3) Inquisit probably calls the clear_response_queue() function during trial initialization so that responses issued during the inter-trial interval are lost.
May I call on Sean Draine whether there is any way to either change (2) or (3) from within an Inquisit script?