windows: bound root hub queries and correct the hang rationale

The Nacon report (#1136) implicates IOCTL_USB_GET_NODE_CONNECTION_
INFORMATION_EX, not the descriptor request: connection-info queries can
also block when a device on the queried port wedges the hub driver.
Correct the timeout rationale accordingly, and drop the assumption that
root hub queries never reach a device: bound init_root_hub()'s node and
per-port queries with the same helper, since a wedged device attached
directly to a root hub port exposes the exact same hang.

Once one request on a root hub handle has timed out, further requests
would most likely each pay the full timeout as well, so the speed query
loops give up on the first timeout and fall back to the pessimistic
default instead of probing the remaining ports. A timeout on the initial
node information query is reported as LIBUSB_ERROR_TIMEOUT so that the
caller can tell it apart from an access failure.

Assisted-by: claude-code:claude-fable-5
1 file changed