There may be easier/better ways to do this, but here's one way that seems to work:
Code:
LWin & z::MsgBox Win+Z.
LWin::return
This relies on the fact that when LWin is used as a prefix key (i.e. the first hotkey above), any subseqent use of LWin as a naked hotkey will fire upon release of LWin. So the above script causes the release of LWin to be blocked (hidden from the system), which prevents the Start Menu from appearing.
In case that one gives you any problems, here's another way. But I don't really trust it because in theory, it shouldn't work (even though in practice, it does):
Code:
~LWin up::Send {Blind}{Ctrl}
#z::MsgBox Win+Z.
This relies on the fact that a Control keystroke "disguises" your release of the LWin key, which prevents the OS from displaying the Start Menu. The reason it shouldn't work is that the Control keystroke comes too late: it's supposed to occur before you release LWin.