The problem might be because I'm using WordPress HTTPS plugin. Your email is sent explicitly to "http" but the plugin is then redirecting to the same URL but "https". I notice that the @ symbol is stripped upon redirect (maybe WP being careful about URL encoding).
I can fix this by hacking your code to always use an HTTPS URL (then it works fine with the @), but that won't survive an update.
Another solution is to URL encode the email address (becomes something like: test%40example.com), which seems to work fine and survives any WP redirect.
Thanks for looking into this. I hope it helps make your plugin more robust. This is a very compelling invite system.