Response will not return when trying to save model with Mongoose in Restify API

I am building an API using Restify and Mongoose for NodeJS. In the method below after finding the user and verifying their password, I am trying to save some login information before sending the response back to the user. The problem is the response will never return. If I place the response outside and after the save call, the data never gets persisted to MongoDB. Am I doing something wrong? And help would be great as I have been working on this for the past 2 days.

    login: function(req, res, next) {
        // Get the needed parameters
        var email = req.params.email;
        var password = req.params.password;

        // If the params contain an email and password
        if (email && password) {
            // Find the user
            findUserByEmail(email, function(err, user) {
                if (err) {
                    res.send(new restify.InternalError());
                    return next();
                }

                // If we found a user
                if (user) {
                    // Verify the password
                    user.verifyPassword(password, function(err, isMatch) {
                        if (err) {
                            res.send(new restify.InternalError());
                            return next();
                        }

                        // If it is a match
                        if (isMatch) {
                            // Update the login info for the user
                            user.loginCount++;
                            user.lastLoginAt = user.currentLoginAt;
                            user.currentLoginAt = moment.utc();
                            user.lastLoginIP = user.currentLoginIP;
                            user.currentLoginIP = req.connection.remoteAddress;


                            user.save(function (err) {
                                if (err) {
                                    res.send(new restify.InternalError());
                                    return next();
                                }

                                // NEVER RETURNS!!!!

                                // Send back the user
                                res.send(200, user);
                                return next();
                            });
                        }
                        else {
                            res.send(new restify.InvalidCredentialsError("Email and/or password are incorrect."));
                            return next();
                        }
                    });
                }
                else {
                    res.send(new restify.InvalidCredentialsError("Email and/or password are incorrect."));
                    return next();
                }
            });
        }
        else {
            res.send(new restify.MissingParameterError());
            return next();
        }
    },