Does the next timer call stops the previous one
No. Unless you re-enable interrupts (which is a very bad idea), your interrupt service routine runs to completion.
What will exactly happen?
Your interrupt service routine completes. A single machine instruction is executed on the loop side. Your interrupt service routine is called again. Essentially, loop gets starved.
I need to figure out a way to check when overruns happens on my timer call, any ideas?
Time loop...
unsigned long PreviousLoop;
void loop( void )
{
unsigned long CurrentLoop;
unsigned long DeltaLoop;
CurrentLoop = micros(); // or millis()
DeltaLoop = CurrentLoop - PreviousLoop;
PreviousLoop = CurrentLoop;
// DeltaLoop continues to increase as loop becomes starved. At a certain point, for all practical purposes, loop stops running.
}