Fiddled around with screen under cygwin again. I think the issue isthat it uses the permissions bits of the unix socket in your tempdir to indicate what state that session is in, and cygwin doesn't support that in quite the same way that a real unix would, so you get this:
% ./screen.exe -ls There is a screen on: 1 Socket in /tmp/uscreens/S-richardc. zsh: 2272 exit 1 ./screen.exe -ls
I have a hunch it's a fairly easy fix though.