The process takes a few hours.
Você provavelmente quer garantir que o max_execution_time não esteja definido no php.ini ou em um conjunto suficientemente alto e você pode querer executar o script diretamente e não por uma solicitação HTTP para um servidor web.
Will this lock up my server (haven't deployed it yet)?
Possivelmente, mas isso depende completamente do que o script pretende fazer (e realmente faz). Scripts / programas de longa execução geralmente não são um problema.
Is it best to run this in small batches?
Depende, por exemplo, o que acontece quando um lote não é concluído, é seguro para ser executado novamente, ele vai pegar onde foi deixado, um lote subsequente tem dependências em lotes anteriores, vários lotes podem ser executados em paralelo (e é benéfico fazê-lo) para citar algumas preocupações