The problem was in my configuration file; the loop is now gone (but I’m working on other problems.)
Upon further investigation Shibboleth doesn’t appear to be returning headers to WordPress. When I check the Session and transaction log everything appears fine, but I do see errors when I restart the service, isapi_shib_extension: socket call resulted in error (10054): Unknown error.