This does database calls in sequence rather than in parallel.  If you use tags = ndb.get_multi(project.tag_keys), it should have the same effect and operate in parallel (though you should verify that it still works for projects with no tags).