Eso es otra cosa... no estas llamando a un procedure dentro de otro, sino que estas activando un Timer que en otro hilo ejecuta tu procedure al mismo tiempo.
Porqué no trabajas con una variable Boolean, le asignas el Active a esta y cuando termina tu procedure lo activas/desactivas?
Código:
procedure TForm1.TCPServerExecute;
var
bTimerActive: boolean;
begin
bTimerActive := Timer1.Active;
...
if comando = 'nuevo' then
bTimerActive := True;
...
Timer1.Active := bTimerActive;
end;
Saludos!