For Thinkpads running Linux, you can do this (somewhat manually) with tpacpi-bat: https://github.com/teleshoes/tpacpi-bat I set mine to stop charging at 85% and not start again until it drops below 75%. If I know I'm going to be away from power for a while (e.g. traveling) I manually tell it to charge up to 95%. Anyone know if there's something like that for Android?
When new, the internal lithium polymer battery reports its nominal capacity conservatively, so that the measured capacity is a few hundred mAh higher than nominal, making it appear healthier. The external lithium ion batteries tend to report nominal battery capacity accurately. This means that for something like the first year of use, these Thinkpads will consistently discharge the internal battery to 5% before touching the external battery. By the time your external battery is low enough to warrant a hot swap, the internal battery is gone, and you have to power down or plug in. And of course 5% isn't a configurable threshold, so you can't change it to, say, 20% instead.
Apparently this is baked into firmware on a charge controller IC somewhere, so it's not hackable with some i2c commands like the charge thresholds.