People often go AFK and you would generally like them to see the invite when they get back. If a time limit must be imposed, I would say no less than 10 minutes. But that's just my opinion.
Its probably not a big deal anyhow though, even if its shorter. I don't play Starcraft 2 so I have no idea how the invites work or why they would need to have a short time delay.
My thinking is that if you send someone an invite and they happened to go AFK for five minutes, it is convenient if when they return from AFK they can simply join. Otherwise, when they return they will need to PM the person (if they are even aware an invite was sent) and then receive another one. Having invites time out quick will lead to more private messages if the person missed it. I'm a lazy gamer and like invites to stay for awhile.

-------
As for the anti-spam I propose a different solution. Create a setting to block invites from a certain user and a second setting to block invites from anyone who is not on "your" friends list.
EDIT: Oh, you will allow multiple invites to be sent at a time... ok. I still propose the above anti-spam solution. But it seems like you should only get one invite at a time, with a later invite replacing an earlier one.