I also created an cron script to run every 45 minutes and if there's no connectivity it will reboot the machine. It's more a workaround that a resolution but should hopefully work till I install the new card.
Another hang again, my cron script detected the error, but /usr/sbin is not in root's PATH in cron - so it didn't actually do anything. Have now added full path to ifdown / ifup commands and hopefully it works next time.
FWIW, here is the code I use to detect the hang:
Bash:
# check system journal for recent hang
if ! hangcount=$(journalctl \
--since "2 minutes ago" _TRANSPORT=kernel \
_KERNEL_SUBSYSTEM=pci --priority=3 | \
grep -c "Detected Hardware Unit Hang:")
then
echo "No network hang detected, exiting"
exit 0
fi
If anyone is interested, my cron script and more info is available here.