|1) Configure my routers primary DNS to my windows server IP, for example, 192.168.0.95|
No, don't do this. Leave the routers settings alone and do not mess with them if they're working. You configure the clients with the DNS address of your DNS Windows server, not the router. The server's DNS should be forwarded either to your router's LAN IP, or your ISP's DNS server(s).
2) In DNS management on my windows server, set the Forwarders properties for the zone to the DNS IPs of my ISP
Sure, or, you can forward requests outside the local zone to the LAN IP of your router.
3) Set the TCP/IP properties of my windows server so that the Preferred DNS server is my windows server, 192.168.0.95
If by this you mean, point the DNS server at it's own IP, sure, that will work.
So what did I do wrong or assume incorrectly along the way?
Well, part of your problem may just be that you don't have the Windows DNS setup properly. Also, it may be messing with the router's settings unnecessarily. The last thing you said is: "If I do ipconfig/all on the client I get the routers ip address for the DNS, as expected. " and that's where you're going wrong. If you're not going to use the DNS on the router, leave it alone completely. Clients should point at the Windows server for DNS. The Windows server's DNS should be forwarded to your ISP..........period, end of story.
Personally, I think you're overcomplicating things by bringing in the Windows DNS. You don't need it, your router can handle DNS just fine. Since you stated you're not creating an AD integrated domain, trying to setup your own DNS makes no sense.
Any time you add complexity to a network, you add potential trouble. As a rule of thumb you always want to apply the KISS principle (if you're not familiar with that, google "kiss principle").
It matters not how straight the gate,
How charged with punishments the scroll,
I am the master of my fate;
I am the captain of my soul.