Thanks for the feature request.
What I need from repeat.el
================
When I exit the repeat map---for example when I press <return> in the video,
and leave the "navigation mode" to "edit mode"---I want to unhighight the thing.
That is I propose that there be a provision in `repeat.el` to associate
an `exit-function` with a repeatable map
(put 'thing-sexp-map 'repeat-exit-function 'thing-unhighlight)
The problem with the symbol property name `repeat-exit-function` is that
the existing variable `repeat-exit-function` has another purpose.
For example, for `repeat-exit-timeout` there is the global variable
and the symbol property with the same names because they are doing
the same thing.
But the variable `repeat-exit-function` is different. It's not
customizable by the user. So another name would be preferable.
Additional Note
==========
If you squint a bit, `repeat-echo-function` is an `exit-function`
... but the problem is it doesn't provide what map is being exited.
See bug#60353: 30.0.50; Make `repeat-echo-function` as a LIST of functions
Indeed, before adding a new symbol property could you please try to use
the existing `repeat-echo-function`. It's called with the nil argument
on exit. Do you need a symbol property `repeat-echo-function`, or can use
the global variable, e.g. by checking some buffer-local variable in it?