Welcome @mikespax ! Are you wanting your macro to trigger automatically based on the time of the day or is it being triggered by something else and you only want it to continue if it's a specific time of day?
If you haven't seen these they're worth a moment of your time:
There are a bunch of ways to do this. But the first question would be why are they running on an "indefinite loop"? Is there no better way to trigger the macro(s) when required, rather than having them shouting "Are we there yet? Are we there yet? Are we there yet?" like a car-full of toddlers?
If you can find one/some triggers -- even if that's a periodic "run every minute" -- then you can use another, cron-triggered, macro that enabled your your macro just before you want it to start running and disabled it just after you want it to stop.
It's more about resource management. Having one macro sat there all day every day asking every second "Should I, should I, should I...?" isn't so bad, but then you add a second and a third and a fourth...
Is there any event you could leverage to make your life easier? Start with "if I do this with a press of a button, what situation means I should press the button?". You've already got (it seems) "if the time is between 3pm and 4am" (but do remember that macros don't run if your Mac is off/asleep), but is there anything else? From the title it looks to be a copy-based macro -- could you use a watched folder trigger?