Have you cleaned out or reordered the list of WiFi access points your system remembers? You can see this list in System Preferences - Network - Airport - Advanced. When it wakes from sleep, it searches that list in order from top to bottom to decide what network to try and join. Maybe your home network has moved way to the bottom, and it's busy looking at others first.

Going to sleep can be affected by a few things. Have you added more RAM lately? By default, a Mac laptop will write memory out to the disk before sleep mode. Also, if your hard drive is nearly full, there may not be a good contiguous place to write the image to, so it may just be taking longer in general due to fragmentation. If you want to test if it's having problems with safe sleep or something else, run the following in terminal:
"sudo pmset -g" and note what number is by hibernatemode for future reference. Then run:
"sudo pmset -a hibernatemode 0" to turn off safe sleep. See if the time returns to near instant.

Battery life is a hard one without knowing how many cycles your battery has been through, and situations like that. Open System Profiler and check to see what the difference is between the full charge capacity and the current remaining. Do this when the system says it's at full charge. Also note the health information. From what I remember, you also have a system with the dual video card setup, maybe it's running the more power hungry dedicated one more often. You can use gfxCardStatus to monitor and change what card is active. I've seen some odd programs kick me over from Intel to Nvidia. If you have one of the older NVidia9400/9600 setups, this tool will allow you to switch on the fly instead of having to log out and back in.

And beyond those specifics, you can always run through the standard OS X fixup tips:
1. Run disk and permissions repair in Disk Utility
2. Reapply the latest OS X full combo update, 10.6.6 is here
3. Reset the SMC