Battery protection/charge board, could use another set of eyes on it?
I skimmed the datasheets and circuit and I think you have a major oversight: with PROG = 2 kOhms, you are trying to pull 2 Amps out of a USB port and the STC4054 will go into shutdown mode if it does not get it. Not many USB ports or chargers can supply this much.

Monitor +5V with a scope as you attach the device and see if your input voltage is collapsing, and read the datasheet about the conditions that trigger shutdown.

Re: "STC4054 charge IC will drop about a volt between BAT and Vcc and put about +2v on Vcc with nothing else connected": The IC stops charging when the current drops below IPROG/10 so do not expect it to show 4.2 Volts when nothing is connected to it.

Reading the datasheet, this IC mentions no graceful method to recover from being input limited. I am quite familiar with this issue; I work in the field. 

A more elegant algorithm is to ramp up the current limit (reduce RPROG) until the USB voltage drops below some limit. But this needs some smarts such as a microcontroller, or host CPU.

It's also possible to do use an opamp circuit to do analog loop that detects VBUS above say 4.5V and drives a current mirror/sink on PROG pin to slowly ramp up the input current limit and then stop if VBUS reaches 4.5V.

If you cannot add additional smarts, the simplest, most reliable thing you can do is limit the input current to below 500 mA by setting RPROG to 10 kOhms.

Hope that helps, -Vince