This is the answer. You can straight up make things dependent on .mount units that represent stuff in fstab. To add, you can create any number of systemd services that just check if something is "as you want it" and only then "start". You simply make the Exec line "/bin/bash -c 'your script here'". Then you make whatever else you want dependent on it. For example I have such a unit that monitors for Internet connection by checking some public DNS servers. Then I have services that depend on Internet connection dependent on that. Here's for example my Plex service which demonstrates how to depend on a mount, docker and shows how to manage a docker container with systemd:
~$ cat /etc/systemd/system/plex-docker.service
[Unit]
Description=Plex Media Server
After=docker.service network-internet.service media-storage\x2dvolume1.mount
After=docker.service
[Service]
TimeoutStartSec=0
Restart=always
RestartSec=10
ExecStartPre=-/usr/bin/docker rm -f plex
ExecStartPre=/usr/bin/docker pull plexinc/pms-docker:latest
ExecStart=/usr/bin/docker run \
--name plex \
--net=host \
-e TZ="US/Eastern" \
-e "PLEX_UID=1000" \
-e "PLEX_GID=1000" \
-v /tmp:/tmp \
-v /var/lib/plex/config:/config \
-v /var/cache/plex/transcode:/transcode \
-v "/media/storage-volume1:/media/storage-volume1" \
plexinc/pms-docker:latest
[Install]
WantedBy=multi-user.target
BTW you can also do timers in systemd which allows doing what you can do with cron but much more flexibly and utilize dependencies too.