What is wrong with my USB Li-Ion charging circuit?
If you have a spare GPIO, rather than using the voltage divider, you could use the following circuit.

This circuit simply takes a second GPIO pin (CTL) that you can use to pull up or pull down STAT using the p-channel (Q5) and n-channel (Q6) MOSFETs. If STAT is floating, then it will change depending on the value of CTL, otherwise STAT will stay the same.
Given I wanted to use a 3.3v MCU, I then used Q7 to drive inverted output with a pull-up to 3.3v
To get the value of ~STAT will mean you will need to take 2 readings, one with CTL high and another with CTL low.
Hope this helps.