Делал счётчик моточасов по похожей схеме. В качестве детектора отключения питания использовал супервизор напряжения, который устанавливал перед диодом. Вывод супервизора цеплял на gpio, на котором настраивал прерывание по изменению уровня. Во время работы устройства инкрементировал переменную времени, по прерыванию от супервизора сохранял результат.
Самое логичное решение на мой взгляд. Но, если нет детектора, то думаю можно и каждые 1-10мин писать в память несколько одинаковых переменных счета. Если питание пропало, то испорченные данные могут быть только в одной переменной. Далее сравнивает, ищем большинство и принимаем его как счет для продолжения... Как-то так думаю можно