Si usan en tu servidor "SAFE MODE" .. no vas a poder aumentar el tiempo máximo de ejecución de tus scripts tu mismo (ni con set_time_limit() y por un .htaccess por ejemplo) ..
El tema de crear ese "loop" cada 50 e-mails enviados .. podría ser redireccionando .. No es una medida muy "ortodoxa" pero tal vez funcione.
Tendrías que gestiar una variable de control (por el URL o sesiones) para irte guardandando donde (en que registro) te quedastes y así manejar una consulta con "LIMIT" de Mysql para obtener desde el registro que te quedastes +50 registros (LIMIT $contador,50)
Más o menos sería:
Código PHP:
<?
if (!isset($_GET['contador'])){
$contador=0;
} else {
$contador=$_GET['contador']
}
$sql="SELECT ..... .. LIMIT $contador,50";
While (.......){
}
header ("Location: $_SERVER['PHP_SELF']."?contador=".$contador+50);
?>
Un saludo,