Iām including %time% in a message that repeats, but the time in the message stays constant throughout the repeated message, as if itās initialized once when the rule first runs, but does not update within the repeat.
Yes, that is the intended behavior. The time variable refers to the last trigger event time. For the current time, you want now instead. See the Rule 5.1 documentation for more.
Current time returns, well, the current time, and not the time of the trigger, at least in my rule.
Now I did assign current time to a variable, and then used that variable surrounded by % in the notification. MAYBE the difference is one can use %now% directly in a notification message.
My question is really where "current time" is coming from, since it's not a built-in variable like we were talking about with time and now. It now sounds like you're using variable operations to assign current time to a variable you created yourself. In that case, yes, that would effectively be equivalent to nowat the time the assignment action is executed (though note that now will always be the current time, and your variable might be different if there were any delays, waits, etc. between your assignment and use).
By definition, one can use the "built-in" local variables for this kind of thing without needing to create them. So, yes, if this is your only use, it will save you a step or two.