We have had the same problems/experiense here.
What we have done to solve the problem was to write a simple application
that runs as service - it runs before CygWin Ipc Daemon and checks for
existing .pid file. If it exists - delete it. You should register CygWin
service to be dependent on this new one - and all should works fine.
HTH
Ivaylo Mutafchiev