*however* at this point, at least part of WP thinks I'm actually logged in, because if I go back to bar.com, my "Site Admin" link shows up (which only does if you're logged in)
Clicking on that Site Admin link however, will take me to the login page.

Similarly, if I log in at just foo.com, go to Blogs, and try to visit the backend of foo.com/bar via the Backend link, it will take me to the login page at:
foo.com/bar/wp-login.php?redirect_to=http://foo.com/bar/wp-admin

Things to note:
I've checked at pretty much every stage of the process, and almost never see a record in wp_domain_mapping_logins. I can't even consistently reproduce it, but occasionally after doing a bunch of stuff I find one weird record: id=NULL, userid=0, blogid = bar's blogid. t: 1/1/0001 12:00:00 AM
I never get the message: "Incorrect or out of date login key"
I do NOT define DOMAIN_COOKIE in my wp-config

Relevant?
When I log in at foo.com/wp-admin, there are 5 cookies set when i get to the dashboard:
wordpress_
wordpress_logged_in_
wordpress_test_cookie
wp-settings-1
wp-settings-time-1

When I log in at foo.com/bar/wp-admin, there are 2 cookies set when i get bounced back to the login page
wordpress_logged_in
wordpress_test_cookie

Questions:
I did try a much earlier version of the plugin with the same name first, which didn't work. I deleted the domain_mapping table in order to get this one working. Could there be any global options stored in the DB that are conflicting with this version that I could look for and purge?

Any ideas how to fix this, or what I can do to get more debugging information?
Thanks! :D

Tried that one - no more luck. However, I've realized that since I've installed this, my whole site is bonked. I can't go to the backend of ANY blog, even ones I hadn't mapped. I deleted the plugin, deleted sunrise.php, returned wp-config.php to its original state, and i STILL can't view the backend of any blog.

On an even weirder note, I tried installing this on another WPMU site earlier this morning, and had the same problem. However, now that one is magically working perfectly on that server!

So thanks for looking at this. Let me try to un-break my site without the plugin, then I'll give it a fresh go. :)

<?php
/**
* The base configurations of the WordPress.
*
**************************************************************************
* Do not try to create this file manually. Read the README.txt and run the
* web installer.
**************************************************************************
*
* This file has the following configurations: MySQL settings, Table Prefix,
* Secret Keys, WordPress Language, and ABSPATH. You can find more information by
* visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
* wp-config.php} Codex page. You can get the MySQL settings from your web host.
*
* This file is used by the wp-config.php creation script during the
* installation.
*
* @package WordPress
*/

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'my_database_name');

/**#@+
* Authentication Unique Keys.
*
* Change these to different unique phrases!
* You can generate these using the {@link http://api.wordpress.org/secret-key/1.1/wpmu/salt WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', '1');
define('SECURE_AUTH_KEY', '2');
define('LOGGED_IN_KEY', '3');
define('NONCE_KEY', '4');
define('AUTH_SALT', '5');
define('LOGGED_IN_SALT', '6');
define('SECURE_AUTH_SALT', '7');
/**#@-*/

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each a unique
* prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';

/**
* WordPress Localized Language, defaults to English.
*
* Change this to localize WordPress. A corresponding MO file for the chosen
* language must be installed to wp-content/languages. For example, install
* de.mo to wp-content/languages and set WPLANG to 'de' to enable German
* language support.
*/
define ('WPLANG', '');

// double check $base
if( $base == 'BASE' )
die( 'Problem in wp-config.php - $base is set to BASE when it should be the path like "/" or "/blogs/"! Please fix it!' );

// If VHOST is 'yes' uncomment and set this to a URL to redirect if a blog does not exist or is a 404 on the main blog. (Useful if signup is disabled)
// For example, the browser will redirect to http://examples.com/ for the following: define( 'NOBLOGREDIRECT', 'http://example.com/' );
// Set this value to %siteurl% to redirect to the root of the site
// define( 'NOBLOGREDIRECT', '' );
// On a directory based install you must use the theme 404 handler.