Like many here I was having the same "no sync" problem with my non-primary gmail accounts. Here is how I fixed my issue. YMMV.......
NOTE: There might be a shorter way, but I will state exactly what I did verbatim.
1) Made sure my accounts were setup for sync.
(Setting-> Accounts & Sync)
2) Went to Settings->Applications->Manage Application->ALL->Gmail and Pressed the clear data button.
3) At this point I was getting Force Closed issues when I clicked on my GMAIL Unread count widget. Just go to the App Tray and load up the gmail app. It will will give you a message asking you to wait for mail to set up. I just cancelled out.
4) Rebooted
5) err message on my secondary gmail unread count widget went away.
6) Sent a test email to my secondary gmail account and 5 seconds later (literally...I timed it)...it popped up on my phone.
I have since received a handful of emails from various sources and things are looking good.
Hope this help.
I was having the push issues with my additional accounts, and this is what worked for me, and I am guessing the CLEAR DATA (NOT "cache") is what did it.
With mine, I started by deleting ALL of my gmail accounts except the one that I set the phone up with.
I then did the CLEAR DATA option inside APPLICATIONS>MANAGE>ALL>GMAIL. You will get a warning message, click OK.
Rebooted.
Added in one account at a time. When you set the account back up, you will notice that it will bring up the ability to sync contacts and calendar, and won't bring in SYNC on the "mail" portion until you GO TO THE MAIL ACCOUNT and MANUALLY REFRESH. Then go back to Accts/Sync and put a checkmark next to SYNC GMAIL. Do this for all of your additional accounts.
Just for grins, I then tapped on SYNC ALL using the new Sync All widget (which I was using when push wasn't working for me)
Send yourself a test message. Mine even loaded on my phone before it hit the web interface.