Cmd.exe is an abomination though - and Cygwin defaults to using it for terminal use. I see that this project also does that.
Agreed, but I don't think Cygwin defaults to it any more. It uses mintty now, which understands Cygwin ptys and has a native Windows interface.
I guess you could also use an X11 terminal emulator in this project.
[1]: http://cygwin.com/ml/cygwin-announce/2011-11/msg00040.html
Use http://mridgers.github.io/clink/
It is not an alternative terminal, but injects itself into every cmd process to allow completion, better key handling etc. I was skeptical at first, but it's a really, really great tool.