Thanks very much amos,
It was good to know that I'd have to solve the problem myself. I
ended up doing something similar. For each server in my cluster,
Capistrano...
* Deletes a file that my load balancer (HAProxy) is looking for from /
public which causes it to be removed from rotation
* Waits 5 seconds for any requests to finish
* Regular capistrano update
* Put the /public/file back so that the server goes back into rotation
* Wait 20 seconds for Passenger to warm up, then move on