Why does my MacBook Pro take so long to go to sleep?
I recommend a nifty little utility called SmartSleep that allows you to control when the saving of your RAM contents to disk for the Safe Sleep / Hibernate feature Mac OS X has.

Alternatively you can disable Safe Sleep altogether by running: sudo pmset -a hibernatemode 0. To change it back to the defaults, change the value to 3.

0 - Old style - just goes to sleep.
1 - Only Hibernate
3 - Default - goes to sleep but writes RAM contents to disk just in case.
5 - Only Hibernate mode but if you use secure virtual memory.
7 - The Default but if you use secure virtual memory.