In reply to Rick Wicklin.

I would like to see the outline of a perfect heart shape. So rather than look for a general solution, I could try to fix things for the specific region that you have chosen. I have added

if InRegion(x + v) & x[1]#(x[1]+v[1])<0 & (x[2]-x[1]#v[2]/v[1]) > 1 then return(x);

as the first line of the StepInRegion module, and think that this works. In words: if the step goes from one side of the heart to the other, and the height of the connecting line at x=0 is greater than 1, then prevent the step from happening.