Som du allerede har nævnt, er det svært at forudsige, hvor længe en forespørgsel kører (på grund af selve forespørgslen og dens parametre, på grund af netværk, på grund af serverbelastning).
Under alle omstændigheder bør du flytte SQL-forespørgslerne til QThreads. Dette gør det muligt for din applikation at betjene GUI'en, mens forespørgslerne kører.
Jeg ville heller ikke forsøge at løse dette med timeouts. Du vil komme i en masse problemer, fordi du vil undlade at vælge de rigtige timeouts for hver forespørgsel og hver situation. Angiv i stedet en måde at annullere forespørgsler med en knap eller en dialogboks, så brugeren kan beslutte, om det er fornuftigt at fortsætte med at vente eller ej.