Is it apache giving up, or your browser? Generally when there's a Redirect, the new request comes back a nanosecond later and the server acts as if it has never met the thing before in its life. It's the browser that has to step in and finally say "This is going nowhere fast".
%25 is fun isn't it. I meet it in doubly-encoded query strings in analytics: from %nn to %25nn. It stops being fun when wordpress goes berserk. And that's where I'd look. Not your own htaccess but the parts that came with wordpress.
The spaces themselves are fine: changing them to + signs is standard in queries. Look at any random search-engine result in your raw logs. But you're right; it should have stopped the first time. Try a few other special characters-- generally anything other than an alphanumeric, hyphen or lowline-- and see if the same thing happens to all of them. Heck, try an explicit percent sign :)