Add/edit following option in /etc/firewalld/firewalld.conf;
CleanupOnExit=no
Using option CleanupOnExit=yes in /etc/firewalld/firewalld.conf flush firewall rules and try to off-load nf_conntrack module. If server hangs, it is because something is stopping nf_conntrack module from unloading quickly.
Try running systemctl stop firewalld
and see if service hangs. If firewalld service start is success you are likely not having this issue.