Pon una pausa entre el close y el backup/restore. En ese momento haz un netstat
netstat -n (en windwos)
netstat -a -n | grep 3050 (en linux)
Busca las conexiones al puerto 3050 con estado ESTABLISHED. Te dirá de qué ip vienen. Si hay alguna, ese es el problema. Hay una conexión que será LISTENING, que es el puerto del ordenador que escucha y habrá seguramente una que diga TIME WAIT. Son las cerradas recientemente.
Si es Firebird 2, entonces el problema puede ser que al gbak debas agregarle el parámetro para que sobreescriba la base de datos si existe. En este momento no me acuerdo cual es, pero podrás averguarlo escribiendo solo gbak.
Veo además que utilizas dos bases de datos (DB y DBHome). Asegúrate de que no están conectadas ninguna de las dos...
Código Delphi
[-]
if FormPrincipal.DB.Connected then
FormPrincipal.DB.Close;
if FormPrincipal.DBHome.Connected then
FormPrincipal.DBHome.Close;
FormPrincipal.DBHome.Open;