I keep running into sample device code that waits until it is configured to start checking for suspend. My recollection is that later compliance tests do check for this by allowing a suspend early and failing a device if it doesn't.
I asked about it at [a certain company that provides USB chips that shall remain nameless] and no one seems to have a clue.
It is kind of annoying to have to keep fixing people's code for this problem because it generally requires fixing the top level architecture so that init processes are state based without busy waits, rather than blocking. (Which is generally a bigger change than the sales department was hoping for.)
It looks to me like this is hidden in the Microchip libraries in LVR's generic HID sample (and probably works properly).
pic_usb_device_hid_generic_10.zip
I didn't see anything in this forum about it, so I thought I would check for your input, Jan.
Mike