I forgot to mention: My guess is that this doesn't work because of threading issues - .NET is trying to call into Lisp from a thread which wasn't created by Lisp. This would explain the failure on LW, see:
http://www.lispworks.com/documentation/lw445/LWUG/html/lwuser-171.htm
I'm not familiar enough with AllegroCL but maybe it's similar there.