Solution for adapting to USB current draw limits?
"The MCP73871 device specifically adheres to the
current drawn limits governed by the USB specification." -MCP73871

You don't need to current limit anything. Your MOSFET solution would only be useful to current limit inrush due to a capacitive load but your VDD pin is not capacitive nor would that circuit limit once it's already on. All you need to do is figure out how to use #PWREN and #SLEEP to switch in different resistor values. The MCP73871 does the rest.


Just hook #SLEEP to #CE to take care of "standby".
Add an inverter between #PWREN and #PROG2 but make sure floating input defaults the inverter output to LOW.
Place a 2.2k pulldown on #PROG1


Note: make sure you have R1 because #PWREN will drive high and you need to limit the current into the NPN.