For transferring files to S3, since you are already coding in PHP you should look at the PHP libraries provided by Amazon to interface to their services. Using a file-system-based approach, where it is mounted to your instance, is not the best because the connection to S3 goes down more often than you would like it to. I know, I have tried.
But generally, your approach to "catch" the file on your instance and then push it to S3 is sound. You will need to be careful to not save a reference to the file in your database until it reaches S3, however, otherwise you will have scalability issues if you choose to run multiple instances behind a Load Balancer.
As to the transcoding, the Amazon Transcoding service is pretty new, so I don't have experience with it, but I can highly recommend Zencoder. It, incidentally, runs on AWS and is fast and cheap, and does it the way you are expecting AET to work: you give it an S3 file, and you tell it where to write the transcoded variants, thumbnails, etc.
Hope this helps.