I'm pretty sure this whole issue is around DNS and with everyone having some sort of success by changing configs and rebooting routers all they are really doing is causing cache's to be flushed but the issue still returns for many so it's got to be a bug in the way Yosemite is resolving DNS.
my problem was solved by setting IPv6 to manual over a week ago and i haven't had a single issue since but as others have tried this without success they may have done things differently.
I noticed when running nettop in terminal that an established IPv6 was causing connectivity to hang and was also the cause of the slow shutdowns and since setting IPv6 to manual or local on all my macs i haven't seen the established IPv6 connection since so have no idea what it was as i don't recall the port it was trying to use at the time
The only other thing i did was to edit /etc/hosts which basically causes discoveryd to flush the hosts cache every time you boot your machine, so maybe this cache flushing helps, don't really know but these were the only things i did to get LAN and WIFI stable.
This is the event you will see if you search for discoveryd in Console after touching or editing your hosts file
Basic DNSResolver etc/hosts file changed: Event 0x0 Flushed /etc/hosts cache
Anyways all I'm really saying is, i believe it is a DNS bug that can't be resolved properly with just config changes.
Also we shouldn't have to do anything to routers as they all follow a standard