UPDATE 2
What I did for the previous update was to reflow the S2pg001a charge IC, and then swapped the CPU. The result was that the controller properly knew when it was charging and when it was not. It didn't get stuck with either blue light or yellow light, but it also wasn't charging as it only went up to 40ma-50ma.
Then I noticed that this capacitor had moved out of place during the reflow for the charge IC.
I took the capacitor out and replaced it with a spare one from a parts board. The controller still knows when it's charging and when it's not in DS4Windows, and still only around 50ma. It got stuck a couple of times with both blue and/or yellow light, but then got unstuck again.
So, in summary, I made it go from charging yet stuck, to UNstuck but not really charging.
This is where I will be stuck myself because I don't really know much about this. My assumption would be that the capacitor is either the wrong value of uF, or it got degraded into the wrong value if that's possible. When I plug in the USB cable it shows in DS4Windows as if the battery was at "63%+" (where the plus sign means it's charging, but when I unplug the cable it shows as if the battery was at 87% without the plus sign. I took the battery out and hooked it to an external charger and the external charger shows 3.8v and marks it at 50% charge.... So maybe this time it's the battery? I'm trying another battery in the controller that when unplugged shows "50%" (not charging) and when plugged shows "54%+" charging at only 84ma (so not really charging, but it knows it should). EDIT: The other battery also started showing inconsistent values: 54+ plugged, 76% unplugged.