How can my game tell when a new level
starts (would I need to cast to level
blueprint)?
Each level has Begin Play - you can start the timer there.
Or, when you load another level, have the Game Instance start another timer. So you have one timer that lasts for the duration of the game and another timer for the current level only.
When you load a new level, tell the GI to restart the 2nd timer. This way you can have it all in one place rather than scattered across levels. Up to you.