I like to try to get my crons and background processes working in a controller first since it's easier to debug. Also, you might try writing the response to mail.send to the DB to see if there are any errors.
I'm not sure that "== False" is the best way to query since False has special properties. You might consider something like ( db.invitations.status=='pending')

