I have written a DriverKit for a USB device and it seems to work well. It is a port from an existing KExt.
In the KExt I could call SuspendDevice(true) on IOUsbDevice