Wie bei allem: Es kommt drauf an.
Ich halte hier einen Automount für einfacher/unproblematischer als um einen mount herum zu scripten. Das geht natürlich auch, falsch ist es auch nicht wenn man das denn tun möchte.
AutoFS ist recht "alt" und oldschool, funktioniert aber gut, die Einrichtung ist nicht ganz trivial. Ich würde "heute" systemd den Vorzug geben:
https://wiki.archlinux.org/index.php/Autofs
Systemd.automount, das Archwiki schweigt sich da tatsächlich aus mit detailierten Beschreibungen:
https://wiki.archlinux.org/index.php/systemd
https://wiki.archlinux.org/index.php/Fstab#Automount_with_systemd
Beispiel eines Eintrags in der fstab:
\\\meinserver\share /mnt/meinserver/share cifs noauto,x-systemd.automount,x-systemd.mount-timeout=30,_netdev,vers=3.1.1,username=chepaz,credentials=/foo/bar/.smb_creds,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0
Funktion ist bei AutoFS und systemd.automount die selbe, sobald $irgendwas auf dein lokales mount-Verzeichnis zugreift wird gemounted und der mount solange gehalten wie der Zugriff aktiv ist. Wenn nichts mehr zugreift läuft der Timeout, ist der abgelaufen passiert ein umount auf dem Verzeichnis. Wenn wieder etwas zugreift, wieder mount, Timeout, unmount... usw. usf.
Versucht etwas "im falschen Netz" dadurch zu mounten hängt die Shell oder dein Filemanager im schlimmsten Fall ein paar Sekunden/Minuten da das Share ja nicht da ist.
Aber wie gesagt, was hier besser ist musst du selbst entscheiden. Gebe zu, dein Script zum laufen zu bewegen hat auch seinen Reiz.
Edit:
Wie wird dein Netzwerk verwaltet? Benutzt du den networkmanager? Das ist nicht ganz klar, du nennst es "Dispatcherscript", aber ist überhaupt Networkmanager im Spiel?
Edit#2:
Dein "before shutdown"-service wird noch etwas wie
After=network-online.target
Wants=network-online.target
benötigen.
Wenn NM im Spiel ist wäre der Vorschlag von drcrux sicher schöner.