I've set up error logging as you described then the FREB mechanism as per Bill's blog and got a detailed report. I'll email that to you since it's 82Kb.
The error indicated an I/O operation failed because of a thread exit or an application request. Not sure what that means. I've added execute access to the handler mapping (RB-iisfcgi). This didn't make a difference. I've added read,list,exec access to 'C:\Program Files\Ruby\*' for Everyone (maybe that's not good practice) and to my inetpub\www\rails folder. Again no difference.
So then I Edited the RB-iisfcgi Handler Mapping and it wouldn't allow me to save the ruby.exe path until I enclosed it in quotes. I did that and now I get a bad-gateway error (502.2) not general silliness so that's some progress. It's probable that putting Ruby under C:\Program Files was a silly thing to do. Those darn spaces...
The bad gateway error says the CGI application did not return a complete set of headers so I remembered the comment in your 10 step plan and removed a line from cgi.rb:
# if options.delete("nph") or
# (/IIS\/(\d+)/n.match(env_table['SERVER_SOFTWARE']) and $1.to_i < 5)
if options.delete("nph")
Still no difference, I still get the bad gateway error.
I'll email you the two error XML dumps, maybe you'll be able to figure our what I'm doing wrong.
Thanks
Derek