it is a good place because in that way you can absolutely capture the moment the application pool is started, but this does not mean it has to exist there and not in a Singleton class, for example, which gets initialized from the Application_Start
.
it really depends on where you will need to use that timer from later on.