PhantomJS, как дождаться полной загрузки страницы?
Выкинуть фантом куда подальше и пользоваться nightmare
Для page можно добавлять callback, на ряд событий.page.onLoadFinished = function () {
    ...
    phantom.exit();
};

page.open(url, function (status) {
	...
});
Лучше в самом начале скрипта добавить:// Ограничиваем время работы скрипта
setTimeout(function () {
    phantom.exit();
}, 30000);
В таком случае даже если в скрипте будет ошибка, он все равно завершится.