Viscosity will tunnel everything great unless I'm trying to connect to any other service on the same box. For instance, once connected to the VPN, if I have my web browser go to a site hosted on the same server, it won't tunnel that connection. Is there a route I can add to fix this?

It loads. But any traffic that is being sent to the public IP of the server (that also hosts the VPN) goes over my regular non-VPN connection.

For instance, once connected, if I were to do a traceroute to google.com, the first hop is my OpenVPN server. If I do a traceroute to my server's public IP, the first hop will be my router, then ISP, ect as though it's regular non-tunnelled traffic.

This is happening because all traffic to your OpenVPN server still needs to go via the public web. OpenVPN can't send OpenVPN traffic through it's own tunnel (if that makes sense), a route will be in place to send the encrypted traffic via the public web and because your website will be on the same IP address, Windows will route traffic to that website over that route.

You will need to set up the site on your server so it can be accessed via the VPN connection, i.e. an internal IP address and have your OpenVPN server advertise the IP via DNS for this internal IP for any services you want to access on the same server while you are connected via OpenVPN.