You can try this workaround for the 100 mA to "stick", found here :
void setup() {
detachInterrupt(LOW_BAT_UC);
// Delay for up to two system power manager loop invocations
delay(2000);
// Change PMIC settings
PMIC pmic;
pmic.setInputCurrentLimit(100);
}
I guess in a perfect world, you would use setChargeCurrent(20)
and physically switch the Li-COSl2 source occasionally, but the minimum offset is 512 mA (hardware defined IIRC), from Line # 588
* Function Name : setChargeCurrent
* Description : The total charge current is the 512mA + the combination of the
current that the following bits represent
I remember a few discussions attempting to perform something similar to your Use Case.
I don't remember the solution(s) though.