Mijn oplossing is uiteindelijk inderdaad in php en niet in ajax (in deze situatie is er echt geen client-side nodig).
Hier is het overzicht:
<?php
while (something is true){
//do stuff
flush(); // execute the stuff you did until now
sleep(300); // wait 5 min
// now check database and retrieve new data, if any, and insert into $result
if (isset($result)){
//do stuff with the $result
break; // get out of the loop
}
}
?>