I've spent the past three days struggling with this issue, both on my iPhone 3GS and iPad 2. Sync would get to the final step (sometimes 6, sometimes 7) and then seemingly hang 'Waiting for items to copy'. I attacked the problem with my iPhone, initially ignoring the iPad. Went through all the suggested remedies, including a restore to factory settings and restore from backup. Aborting the sync during the 'Waiting' phase left the iPhone with some events being empty in the Photos app. I thought the problem might be to do with those photos being corrupted in iPhoto, so removed them. After that, the sync went fine (although it did still spend 10-20 seconds in the 'Waiting' phase).
I decided to try rebuilding my iPhoto Library to see if that would help, but DO NOT DO THIS! After nearly three hours, iPhoto (9.2.1) did complete its rebuild, but nearly all of the portrait format photos in the library had been rotated to landscape orientation. Fortunately, I had saved my old library and could put it back in place.
I then added those events back into iPhoto, and tried a sync with my iPad. It stuck on 'Waiting for items to copy' for 6 minutes, and I was about to abort it, when suddenly it started reporting 'Copying photo [1,2,3..] of 272', and finished the copy and the sync within a minute. All events were present in the Photos app. Then did the same thing with my iPhone, and the 'Waiting' phase took 12 minutes, after which it started copying photos and rapidly finished.
My conclusion is that when iTunes displays the 'Waiting' message, it is silently doing something important that takes a long time. In my case, I'm guessing that it must have been 'Optimizing' the photos (which it used to report explicitly under iOS 4 but no longer reports). By aborting the 'Waiting' phase, the process of copying the photos was interrupted and I was left with empty events. So from now on, I'll leave the 'Waiting' phase as long as it takes to finally get on with it and finish whatever it's waiting for.