The only case that is still at issue for me is that the device doesnt go passed the "DoUSBinit" subroutine if it's powered on while not connected
Yeah, when it's not connected, it'll never make it to the CONFIGURED_STATE.

Change the Init routine to this.
Code:
DoUSBinit:
    pause 500
    usbinit                  ; initialise USB...
    USBSERVICE               ; service it once
    UIE = $7F                ; enable USB interrupts
    UEIE = $9F               ; enable USB Error interrupts
    @ INT_ENABLE USB_INT
return