This lets us get rid of the Reset call in ProcessInputPayload, which was causing us some threading headaches (see 74ed5e5532). Instead we handle disconnection in the same way as the libusb implementation does.
74ed5e5532
std::copy
std::copy_n
std::find_if
std::ranges::find