How about this… move the rendering to a background process with say, BackgroundDrb. Your action redirects the client to the location of the static file and you let someone like apache stream the file.
Could get quite I/O intensive, but atleast you can stream. Might be ok if you only handle a small number of requests.