結局、rspecでコマンドプロンプトの時だけ、STDOUTで文字が出る前にSJISに変換してしまうことにしました。
半分あきらめに近いですが、SJISの範囲内ならまあいいということで…

例としては、spec_helper.rb(rspecで共通で読み込むルーチン)に以下を追加します。

require 'kconv'
if ENV['OS'] =~ /Windows/i && ENV['TERM'].nil?
  class StdoutHook
    def write(str)
      #    STDOUT.write str.to_s.kconv(Kconv::SJIS,  Kconv::UTF8)
      STDOUT.write str.to_s.tosjis
    end
    $> = new
  end
end

STDOUT乗っ取り?はMLの過去ログを参考にしましたが、もっといい方法があれば捕捉お願いします。
[ruby-list:45331] Re: Windows コマンドプロンプトで UTF-8を出力するには
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45331