"Another way I thought of is that backups can create a unique file inside a folder then delete it after, so before shutting down I can check if the folder is empty. But that too, I'm really not sure how I'd do that."
What you are describing is very similar to the lock mechanism. The way that I would do it is for all the cron processes to create a shared lock on some lock file using the flock command. Each cron process would remove the lock just before they exit. The exception is the shutdown job. The shutdown job starts last (by cron time) and creates an exclusive, blocking lock on the lock file. Thus the shutdown job does not return from the flock command until all other processes locking on the same lock have finished. Thus when the shutdown job returns from the flock command it knows that it is the only cron shutdown process still running. (The shutdown job must unlock its lock before it shuts down or the next shutdown after reboot will be a non-event.)
"I want to check if another script is running and if yes, it just skips the shut down,"
The way that I describe the solution, only one script will be the designated shutdown job. The other cron jobs that issue shared lock requests will never attempt a shutdown.