My custom timer is cancelled when loading a *.blend file
First such practice as modal operator running in background without user actually starting it from UI or having the ability to end it is bad. For example it will block F8- reload plugins.

Try to use the scene_update callback list in app.handlers instead of modal operator for what you wanna do.

Now also from such callback list you can monitor if some modal operator is or is not running and eventually call it. But again, this is very dirty.