I want to know how to reopen the session once the timer goes off to minimize user friction.
As far as I have read in the documentation, timers are out of session and thus it is not possible to reopen the session or pass control back to your skill after the timer fires. I think your best bet is to set the timer as of type LAUNCH_TASK and then implement a custom task that will launch when the timer fires. Reading the documentation, Alexa will however ask the user if it can launch the task before actually doing so.
Hope this helps,