Not sure how you intent to use the timer but a timer doesn't need to be global. It also can reside in a class.
Instantiation in a function sec will not work, as at destruction the timer is disarmed (espressif terminology for stopped).
There are possibilities to implement such a timer using queues and tasks. Very limited in NONOS but extensive available in RTOS. Take a look in HardwareSerial class were I use this concept in making sure that the delegate is not executed within the interrupt routine itself.(and starting to do the same in my own application :smile: )
If you want I can give you some rough skeleton code to show basic working