Sería bueno que indicaras exactamente en qué parte del código se produce el error.
Mientras tanto, algo que puedo comentarte es que tu línea
en la función enviarSMS debe estar protegida no por un bloque try-except, sino por uno try-finally. Si requieres ambas cosas, manejar excepciones y proteger recursoos, entonces puedes anidar un bloque dentro de otro:
Código Delphi
[-]
try
try
except
end;
finally
end;
Tal como lo tienes, tu objeto sólo se destruirá en caso de una excepción, pero en un caso normal no.
// Saludos