I'm not entirely convinced it's a full bug. What I've seen in the particular case of too high battery internal resistance, bme calls abort() rather than crashing. It could be deliberate. From observing the charge process, it seems the charging circuitry would have issues or is simply not able to safely regulate the charge low enough to not cause a safety issue, so bme decides to abort. using a slower charger helps anyway, because there's less current that the circuitry needs to try throttle.