They're all different, both patches and my PR, which will just stop writing new values into the delay line.
I don't know if there is a special/canonical way of doing freeze that suits a specific use case. MAX's code is closed so we'd need to make some reverse engineering tests or ask users.
I can think of yet another fourth approach which is waiting until the delay line reaches the end and then stop writing.
What bothers me in some cases with delay lines is that when you loop through the delay line (such as when doing a reverse delay effect) you get a click. The code could perform a cross fade to avoid that. My 4th proposed approach could be useful for that.
Anyway, time to better research the golden rule and practices of freezing delay lines.
cheers