If that didn't do the trick, then I'm pretty much out of ideas. ()
I'm going to ask some trivial stuff just in case anyways:
1. How do you check if the vmdk has actually shrunk? An "ls -lh" from the shell for example will always report the total provisioned size and not the actual thin-size. Check the vSphere Client and refresh the disk usage stats.
2. When sVMotioning, do you choose the "keep the original virtual disk format" option or did you set the destination to thin anyways?
3. Is there no change in used space at all or are there minor changes?
4. Run a few defragmentation passes inside the guest before running sdelete - this should ensure there are as much continuous, fully zeroed blocks as possible to reclaim.
5. Have you tested the whole procedure with another VM or another virtual disk attached to that VM?