This is what I ended up adding to my plugin, and users report that it has been successful:
add_action( 'wp_login', array( $this, 'after_successful_login' ), 10, 2 );
/**
* Make sure the auth cookie is set when a user logs in
*
* @param string $login The user's username
* @param object $user The logged in user object
*
*/
public function after_successful_login( $login, $user="" ) {
if ( ! ( $user instanceof WP_User ) ) {
return;
}
/**
* Log in a user by setting authentication cookies.
*
* @param int $user_id
* @param bool $remember
* @param mixed $secure
*
*/
$remember = filter_var( get_option( $this->option_prefix . 'remember_user_login', false ), FILTER_VALIDATE_BOOLEAN );
wp_set_auth_cookie( $user->ID, $remember, is_ssl() );
}
None of the replicating of wp_user_settings
that I had tried above was necessary, just that.