The answer here technically works when utilizing command blocks, but isn't possible when working with datapacks. I do have the same limitations as the linked question, in that I can't use cauldrons, soil, and so on to detect it.
What I'm attempting to do is make it rain infinitely, but I don't want it to continuously run the command. Yes, I can set up commands so that
load.json runs it on server (re)load, but the maximum time I can set that to is roughly 11 days. Since I'm making a datapack that is intended for survival world use, I need this to be continuous and run again if it's no longer raining.