In the case of usbhid, the parent will drain any transfers that are
pending, which could lead to just a little bit of data being plumbed
through. Stop interrupts *before* we mark the child as inactive so that
anything that was inflight makes it through.
This primarily helps a little with debugging, so that we can tell if
data was dropped as a result of hid_intr_stop().