Después de varios problemas con el mentado error 504 Gateway Timeout y algunas soluciones temporales como matar procesos de PHP CGI por fin he dado con la solución (por lo menos lleva semanas sin fallar).
Efectivamente el error es provocado por el interprete de PHP-CGI ya que tenia poco tiempo para procesar la solicitud y pues a veces se quedaba colgado el proceso.
Antes que nada tenemos que verificar que este correctamente configurado el interprete de PHP para FastCGI (PHP_FCGI), entramos al panel de control con el comando cherokee-admin y despues nos dirigimos a Origenes > PHP
Y verificamos que este en conexión: 127.0.0.1:47990 (el puerto pueden ponerle cualquiera que este libre)
Y también en interprete: /usr/bin/php-cgi -b 127.0.0.1:47990
Despues nos vamos a donde se especifica el tiempo máximo para cada respuesta del PHP FCGI, para eso nos pasamos a la consola y como root nos metemos al archivo /etc/cherokee/cherokee.conf
Y agregamos/modificamos el siguiente parámetro: PHP_FCGI_MAX_REQUESTS = 300
source!1!env!PHP_FCGI_CHILDREN = 5
source!1!env!PHP_FCGI_MAX_REQUESTS = 300
source!1!env_inherited = 1
source!1!host = 127.0.0.1:47990
source!1!interpreter = /usr/bin/php-cgi -b 127.0.0.1:47990
source!1!nick = PHP Interpreter
source!1!type = interpreter
Recordemos que si tenemos varios interpretes puede cambiar el parámetro después de source! por algún otro número.
Y listo! reiniciamos cherokee y en teoría no debería de fallar.

me sirvio
A mi no me sirvio, realicé lo siguiente:
Entrar al administrador de cherokee (en consola cherokee-admin -b), e ir a la opción “vServers”
Seleccionar el servidor virtual correspondiente (en mi caso es “default”) y dar clic en la pestaña “Comportamiento”
Dar clic en el link “Extensions PHP”, e ir a la pestaña “Restrictions”
En el campo “Tiempo de Espera” modificar el tiempo de espera del script (en segundos)
Cualquier cosa me cuentan