'farlo girare in background' significa farlo partire a una data ora tramite il cron (unix server) oppure tramite uno scheduler sui server winzozz

effettivamente spedire una newsletter lanciando lo script da browser è una cosa poco ortodossa.
però si può fare mettendo set_time_limit(0) nello script php. Certo se ti si chiude la connessione prima di avere finito la spedizione non saprai mai quanti messaggi avrai spedito e quanti sono andati persi !

my 2 cents