Dois cuidados nesse esquema. O caminho sqlite:buffer_webhooks.sqlite é relativo, então o arquivo provavelmente fica na mesma pasta pública do webhook.php, e aí quem acertar a URL baixa o banco com todas as mensagens do WhatsApp. Vale mover pra fora da raiz do site ou bloquear .sqlite no servidor.
O outro é a sobreposição: se o fluxo do n8n demorar mais de 1 minuto com os 50, o próximo disparo pega os mesmos pendentes e o cliente recebe resposta dobrada. Eu marcaria como processando antes de começar (dá pra fazer com UPDATE ... RETURNING) e ligaria o WAL com um busy_timeout no PHP, porque com muita requisição chegando junto o SQLite começa a devolver database is locked.