In my model-driven app I have a Choice field called Likelihood. The choices range from Never to Always. The client wants a slider instead of a dropdown on the record edit form. So I'm creating a custom page. On the page I've added a gallery and hooked it to the Response records. I've added a slider with values of 0 to 5 and a view-only dropdown that shows the corresponding value of Likelihood. This is what it looks like:

When the form loads, the value of Response.Likelihood (if any) is used to populate both slider.Default and dropdown.Default.
//slider.Default
With(ThisItem As ti,LookUp('Risk matrix intersects',Likelihood=ti.Likelihood).'Likelihood score')
//dropdown.Default
ThisItem.Likelihood
When the slider value changes, Response.Likelihood is patched.
//slider.OnChange
Patch('Responses',ThisItem,{Likelihood:LookUp('Risk matrix intersects','Likelihood score'=Self.Value).Likelihood})
Problem 1: during the patch, the entire gallery may refresh a variable number of times rather than just refreshing the changed record.
Problem 2: at the end of the patch, the record may be something other than the most recent input even though the first of the refreshes definitely showed the desired value momentarily
How do I prevent the 'refresh' loop?