Thanks Jay,
'Surface only' is exactly the setting I was using. I think it may have also had something to do with 'center' or 'tip' compensation. I changed it to 'center' and all of the paths were recalculated, above the surface at the cutter normal distance.
This makes more sense in my brain though I'm not entirely sure how 'tip' compensation works with a spherical cutter. 'Center' comp fixed the upper boundary (the circular one) but it still left a lip on the rectangular boundary.
In desperation, I made friends with the idea of creating 'check surfaces'. I put a ruled surface through the part, just above where the vise jaws will be and set that as a check surface. I also set the center, circular land as a check surface. Then I turned the 'roll' action back to automatic. Now it rolls off and finishes the edge, without running all the way down to the vise jaws.
Or at least that's how it looks in the simulation.

I won't have a chance to re-run it until tomorrow but it looks great now on the screen.
Now I have to figure out how to set the dialog for peck, rigid-tapping. I've never rigid tapped on my machine so I'm going to jump right in with formed, 8-32 threads, 2.5-3 D in blind holes. What could possibly go wrong?
I'll post pictures when it's done.