Nginx is "set and forget", just like Apache really. You can run it stand-alone, or in front of Apache. If you run it in front of Apache, you have the benefit of leaving everything "as-is". On a 4GB Pentium DualCore machine at OVH, I managed 4500+ requests per second with NginX on a WordPress site (which also used a database cache).
NgingX can handle incoming requests much faster than Apache - an added benefit is that you can pool several back-end servers together (as with the cloud service I mentioned). So it can spread the load across Apache servers, that will do the hard work. And if the output it's cachable, NginX will take care of it without bothering the back-end servers.
As for a message queue, you can use various options like
BeanstalkD. You simply place the neccesary values into the queue, whilst a cron-job to a PHP script picks it up later to be sent. You could even write a simple servelet in Node.js (which, even though its server-side Javascript, I've found very robust and flexible).
The added benefit of throwing it into a message queue, is that you can work with the data "at your own pace", that is, if for example you received an error from Google Analytics, you can re-send it again at another time or perform some additional logic. All this without holding up the actual API request.
Edit: Oh yes, you can definitely benefit from using PHP's own DB handlers instead of $wpdb. The thing is that it does a very large amount of additional "includes", loading classes you don't need, in all taking up valuable memory, thrash your HDD and slow down the request.