Hola anubis.
Como comentas en el mensaje
#5, el problema del retardo se produce en la conexión a la base de datos remota. Entonces, la implementación de threads sólo se justificaría si el usuario de tu aplicación puede desarrollar actividades con tu aplicación aún sin haberse establecido la conexión.
De otro modo, threads mediante o no, el usuario va a tener que aguardar el tiempo que la conexión requiera para empezar a operar.
Saludos.