As many have discovered, conventional charging ICs do not manage to charge batteries with low light, while manage fine in strong light. This is due to the constant current nature of the panel which varies with the light intensity, and so when the current output of the panel is below what the charger want to put into the battery, the charger will fail to function.
This page will prefer to the charging stages as described here. It can be seen that the majority of the charge capacity comes from the constant current stage, and the current is not important, providing its less than the maximum charge current for the battery. This requirement can be achieved by simply observing the solar cell is itself a constant current device.
The second requirement of lithium battery charging is stage 2, where the charge voltage limits at a maximum value, and current is supplied until the current into the battery is low. It is important not to apply a charging current to the battery at this maximum voltage for too long. This can be achieved either by option 1, cutting off the charging current based on the current into the battery, or option 2, limiting the charging voltage to ~0.1V below its maximum. This will mean the charging current does not have to be actively turned off, at the disadvantage of not using all the capacity of the battery.
Based on this background, the charging circuit below is proposed.
The regulator IC1 is selected for specific characteristics. In particular, it needs to withstand (and not draw any current) when Vin < Vout, and when Vin is less then the programmed voltage it needs to pass input current to the output with minimal voltage drop.
If the regulator fulfills these requirements then it will allow the battery to charge in constant current mode from the cell in stage 1, and then limit the charge voltage to ~4.1V for stage 2 via R1 and R2. There is also the option to allow the microcontroller to disable the charge current, such that the regulator can charge the battery closer to the full capacity, as discussed above. This will need the addition of some monitoring of the charge current, and so may be deemed necessary for simple nodes.