Some time ago, I was using a Windows machine on which Cygwin was extremely slow to start the terminal.
I found the reason for the slowness and the fix.
The fix for me was to make a cache of the local authentication and AD credentials. This is done by running:
$ mkpasswd -l -c >/etc/passwd
$ mkgroup -l -c >/etc/group
$ cp /etc/nsswitch.conf /etc/nsswitch.conf.bak
$ echo 'passwd: files' >/etc/nsswitch.conf
$ echo 'group: files' >>/etc/nsswitch.conf
Then kill all Cygwin processes and start a Cygwin terminal. It should now be significantly faster.