php ha di default un tempo massimo di esecuzione per uno script di 30 secondi dopo di che va in timeout. Se sei in hosting questo valore non è modificabile. Anche se lo fosse sarebbe assurdo far girare all'infinito uno script. Basta che prepari una query di "pulizia" la quale se un utente non si convalida entro un certo tempo lo elimina. Questa query viene eseguita ogni volta che viene richiesta una pagina (o magari basta solo metterla nell'index)