After talking to a few people, and asking around here, I feel like the only way to securely do calls asynchronously is with an updatepanel.
(Context: Creating an Upvote/Downvote system on SharePoint inside a Site Definition)
I have a Repeater nested inside an UpdatePanel that is successfully making the data calls, and fairly quickly it seems.
I did this for security reasons. I wanted to remove the possibility of vote hacking which could be quite easy with an AJAX based solution.
Am I making the wrong call? Would you stick with AJAX regardless of security? Is worrying about general site users injecting javascript to cheat a company intranet QA site just a little over the top?