I have been experimenting with using MinGW and MSYS rather than Cygwin in conjunction with NTEmacs. With a little bit of effort it works fairly well although installation is not for the faint of heart.
The current version of MinGW/MSYS does not have an automated installer. This makes it a bit difficult but I got it working. I don't have access to my setup right now; if anyone wants I'll be happy to post a list of the necessary downloads on Monday. Once everything is installed filename completion, ediff and grep-find work just fine. There are a few grisly details: getting filename completion to work requires cygwin-mount.el and a customization to make filenames with spaces work with bash used for shell-mode. Again, if anyone's interested I'll post my solution. The one unsolved problem I have is using utilities that read directly from a tty inside a shell-mode buffer. I believe this is a long-standing issue and I would love to hear any advice about resolving it in general. In particular, openssl when prompting for a passphrase fails. openssh works, but is a little bit confusing because prompts from a remote system do not appear (along with a warning about "not a tty").