Si tiene que funcionar, el único problema que encuentro es que puedes volver el cursor a un estado inválido, yo haría algo distinto:
Código Delphi
[-]
var
OldCursor: TCursor;
begin
OldCursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
finally
Screen.Cursor := OldCursor;
end;
end;
Saludos!