Reading the battery voltage issues

I think both are correct.

analogReadMilliVolts(), does this directly read the battery terminal / charge controller? Or it’s still reading via a voltage divider feedback to an input GPIO as I have it?

Reads the GPIO voltage through a voltage divider resistor.

The advantage of analogReadMilivolts() function is that the calibration recorded for each chip is applied.