Macbook sleep is delayed
If there is a process that is preventing sleep (rather than a bug in the sleep implementation), you can use "pmset -g" in a terminal window to list the process that is doing that. This is covered over on superuser.

Here is an an example on my system. First, with nothing preventing sleep:

$ pmset -g assertions | egrep '(PreventUserIdleSystemSleep|PreventUserIdleDisplaySleep)'
     PreventUserIdleDisplaySleep             0
     PreventUserIdleSystemSleep              0
$


Then I start music in iTunes:

$ pmset -g assertions | egrep '(PreventUserIdleSystemSleep|PreventUserIdleDisplaySleep)'
     PreventUserIdleDisplaySleep             0
     PreventUserIdleSystemSleep              1
    pid 264: [0x0000012c00000108] PreventUserIdleSystemSleep named: "com.apple.audio.'AppleHDAEngineOutput:1B,0,1,2:0'.noidlesleep" 
    pid 95390: [0x0000012c0001749e] PreventUserIdleSystemSleep named: "Nameless (via IOPMAssertionCreate)"