A może inaczej, u źródła - zamiast robić 30-minutowe zapytania, zmień zapytanie aby tylko uruchomiło pracę na serwerze i od razu zwróciło status. Zamiast czekać 30 minut na zakończenie zapytania, odpytuj się co jakiś czas, czy zadanie zostało zakończone.
To wydaje się też bardziej odporne na sytuacje typu krótkotrwałe rozłączenie sieciowe lub timeouty po którejkolwiek stronie.