A couple things come to mind when reading your post. You seem to have answered my question, but I just want to clarify. When looking at awstats, you are looking at "pages requested" when you get the 300k number and not "successful requests" right? Also, page requests will include documents like *.pdf and *.doc, but those wouldn't be included in the Google Analytics since you can't embed the Google code in files like that.
Analytics works by interacting with the client using javascript. If the user has js disabled or blocked with something like a Firefox plugin or a software firewall, the request won't get recorded even though it's valid and will show up in awstats.
I am not sure how the logs are handled if you have certain ips or domains blocked with an .htaccess file, but since the rejection is done by Apache after the request is made, it might be recorded in your access log. Maybe someone else here can offer more insight into that.
You also mentioned AdSense and I know from experience that Google will sometimes adjust their numbers. I have no reason to think it's anything other than above-board, and is most likely to be fair to advertisers. If you make a lot of page requests from the same IP, such as your local development machine, those will be removed from the Google counts.
That stuff doesn't seem like it would be significant enough to result in the discrepancies you're seeing, but I wanted to mention it.