I think you have hit on the main point with temperature control for your charging.
Take a look at this thread for some ideas on how best to handle this. My approach was to put a temperature sensor on my carrier board and determine whether to charge each hour. You will also see some great suggestions on improvements too.
I think you approach with the switch is very simple and effective. By limiting the charge current via the pmic commands or the new serPowerConfiguration API, you should be all set.