OK, small update. Looks like if I use this:
<Files wp-login.php>
Order Deny,Allow
Deny from All
Allow from <my ip>
</Files>
Things work. So it looks like something is up with my server and the Digest Auth. Thanks for all your help.
Incredibly bizzare. This is literally the entire contents of my .htaccess:
<Files wp-login.php>
AuthType Digest
AuthName “blah”
AuthUserFile /home/blah/.htpasswd
Require valid-user
</Files>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
No matter how I flop them around, or if I place the wp-login rule inside the rewrite rule, I still get a 404. Going to keep trying i guess.