There should be a timeout after disconnection, I think it’s 2 minutes (don’t hold me to that). But you should be able to fix that one by running
sed -i 's/udp_port_range = 3/udp_port_range = 100/' /etc/shairport-sync.conf
The workaround for windows connections is to disable the firewall, that may or may not be a concern for you depending on your network.
If you want to disable it you can stick the following lines at the bottom of /etc/rc.local
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -X