When you define the timer's callback as a string, it is evaluatred in the base workspace. Therefore you cannot observe changes in the variable |stat|inside the show function. Better use a flag which is "attached" to the timer, e.g. its UserData:
t = timer('TimerFcn', @myTimerCB, 'StartDelay', sec, 'UserData', 0);
start(t)
...
while get(t, 'UserData') == 0
...
end
...
function mytimerCB(TimerH, EventData)
set(TimerH, 'UserData', 1);
end