Timer's and OH2 Restarts

That is correct.

For this use case where the on and off times are static I would say yes.

You can get that behavior with Design Pattern: Expire Binding Based Timers and persistence.

If you persist this Item:

Switch ChristmasTimer {expire="7h,command=OFF"}

Then you can use these rules:

rule "Reset timer"
when
    System started
then
    ChristmasTimer.sendCommand(ChristmasTimer.previousState)
end

rule "Turn on lights"
when
    Time cron "0 0 17 ? * *"
then
    // turn on the lights

    ChristmasTimer.sendCommand(ON)
end

rule "Turn off the Christmas Lights"
when
    Item ChristmasTimer received command OFF
then
    // turn off the lights
end