OTOH I believe FRAM uses destructive reads, so if you loose power during a read before the chip has completed its write-back cycle, you can corrupt the location you were reading.
Also, if you are basing the hourmeter on Arduino hardware, the usual 16MHz ceramic resonator isn't that accurate (and the 8MHz internal oscillator is even worse) so you may well want a RTC anyway, for more accurate timekeeping. It also gives you the option to display total elapsed time as well as power-on time, or actual time of last powerup etc. which would aid diagnostics of panels with an unreliable supply.
Probably the best option is a RTC module and log the total hours (as seconds) to the battery backed RAM in the RTC chip. If you keep three copies of the count in the RTC RAM incrementing them all once a second, you don't have to worry about maintaining power to the Arduino to do a write on loss of power:
If it looses power during a write, one count will be corrupted. The other two counts should be unaffected. They will have one of two possible values, either the previous count, or the current count (which is the previous count + 1). Therefore on powerup, read the three counts and reject any that aren't within 1 count of the other two, then take the highest remaining. There is a vanishingly small probability of this occasionally adding 1 second to the total, if the second count gets corrupted and just happens to end up with a value one more than the correct total, but I doubt you'd ever see in practice.
If possible use a RTC with a squarewave output pin, and connect it to an input pin of your MCU, as it makes the code a lot easier if you set the RTC to output 1Hz at powerup and simply update the counts each time you see that pulse.
Using uint32_t counts, it can run for 136 years before the counts overflow, by which time, you, me, the Arduino and the RTC battery will all be long dead so its definitely somebody else's problem.