Função Matlab onCleanup não executada

Encontrei o seguinte problema no MATLAB R2013a, que por algum motivo não entendo não chama a função onCleanup quando em uma função um temporizador (incluindo um TimerFcn) está definido.

Eu adiciono dois exemplos mínimos mostrando o problema:

primeiro a versão de trabalho em que a rotina de limpeza é chamada conforme o esperado:

function mytest(time)
  t = timer();
  myclean = onCleanup(@() disp('function ended'));
  pause(time);
end

e agora a versão de buggy na qual a limpeza não é chamada (nem quando a função termina normalmente ou quando ctrl + c é pressionado)

function mytest2(time)
  t = timer();
  t.TimerFcn = @(o,s)disp(' ... waiting for some time'); 
  myclean = onCleanup(@() disp('function ends'));
  pause(time);
end

Não pude encontrar nenhuma dica na documentação de por que o timer ou mais específica a definição do TimerFcn alteraria a execução do código de limpeza?

questionAnswers(2)

yourAnswerToTheQuestion