Acompanhe quantos resultados você ainda está esperando e, em seguida, ligue para um retorno de chamada quando terminar:
function getCurrentScore(callback) {
var teamScores = "", teamsLeft = teams.length;
for(var i=0 ; i<teams.length; i++) {
(function(i){
PingVoteModel.count({"votedTo": "TEAM"+(i+1)}, function( err, count) {
teamScores += "<Team" + (i+1) + "> " + count + "\t";
if (--teamsLeft === 0) {
callback(teamScores);
}
});
}(i));
}
}