Можно ли как-то фоново сгенерировать файл и потом отправить?
ессно можно
лучше всего генерить ДО, то есть хранить подготовленные файлы
если нельзя - то редирект на страничку с "ща вот вот будет файл готтов" несколько раз, ну там с таймбаром, и потом отдача по готовности
ну и последнее - файл/ссылку вышлют на мыло как будет готово