How do I add a Cooldown in my script to prevent overlapping?

You could also use ZonePlus by ForeverHD https://devforum.roblox.com/t/zoneplus-v2-construct-dynamic-zones-and-effectively-determine-players-and-parts-within-their-boundaries/1017701

It has functions that detect once a player enters a zone and only fires once, vice versa with exiting, I have used this with a lot of my projects.