As I mentioned in an earlier post, it is probably the "fuel gauge" IC built into the battery pack that is misprogrammed. The IC is a tiny computer that controls all the power going into and out of the physical battery cells. You are right in guessing that
the problem is in firmware (for the fuel gauge IC). The problem is that there is usually no way to get at this firmware since it is all sealed in the battery pack. The only thing Microsoft can probably do is read registers and data from the fuel gauge IC.
Ever looked at a battery for a phone or computer and wondered why it had more than 2 contacts? At least 3, sometimes 5 or 6. An AA battery only has two contacts, plus and minus. Some of those extra contacts are for communicating with the fuel gauge IC.
I worked for a phone manufacturer and we had a similar problems with a phone many years ago. Batteries would go dead suddenly, could only be charged up to 49%. All kinds of weird behavior. Turned out to be the fuel gauge IC.
My guess is that Microsoft is trying to get Simplo to foot the bill for all the repairs. But Simplo may not have the resources which is why this is dragging out. Much like the Takata airbag problem.
Actually, I am guessing the charging circuit with the "smarts" is built into the surface itself, not the battery. These are li-ion or li-poly batteries, which are made up of several cells. With all lithium multi-cell batteries, a good charge circuit needs
to "balance" the cells, so it will send more voltage to specific cells to get them all up to the same level, otherwise it can damage the battery. The several contacts you see on the battery are for getting +/- from each discrete cell.
I fly R/C helicopters and planes, and we use large li-poly batteries. Our smart chargers are very advanced and programmed with the specific profiles of every battery chemistry. Also, most these days are firmware-updatable so if a new battery chemistry is
added in the future, we can update our chargers to charge them. I have run into some of my older li-poly batteries in the past that my older charger would not charge, as it was programmed to fail out early if it thought the batt was damaged. But my newer charger
has a mode which will attempt to charge a battery in a safe mode to get it back into it's normal profile. I have rescued several older packs this way that had discharged lower than they should have.
So what I am getting at is the reason why I think it is quite possible a firmware update can fix the issue. It's possible as you say that the circuit is inside the battery itself, but I am hoping that's not the case. Also hope that the scenario doesn't happen
where our machines will not think they are charged to a sufficient degree to even allow us to apply such an update. That would suck royally!