Custom GoLink

I’d like to implement a custom GoLink object and wonder how feasible it is and what my best approach would be.

The intention is to create a Link class which behaves a bit like a normal GoLink with the bezier style. Except that this link would have three defining points rather than four. The curve so defined would need to start at one point and form an arc through the second to end at the third.
I have acheived some of this by setting a bezier style and overriding CalculateStroke to include the following snippet:
ClearPoints();
GoPort from = (FromPort as GoPort);
GoPort to = (ToPort as GoPort);
AddPoint(from.GetFromLinkPoint(AbstractLink));
AddPoint(controlPoint);
AddPoint(controlPoint);
AddPoint(to.GetToLinkPoint(AbstractLink));
In actual fact I have some additional type checking and I fail over to the base implementation. But, this snippet captures the gist.
This seems to do the trick for drawing the curve as I intend, but I'm now stumped on how I can allow my user to edit the curve with a single selection handle at the mid point of the curve.
I have tried messing with overrides of AddSelectionHandles and have made some headway. I draw the appropriate handles but have not managed to make them actually affect the curve.
Is this something I should give up on, do I need a completely different approach or am I just missing something?
Any help appreciated.
Cheers.

My personal opinion is that it’s a lot of work, and the net result will be making the beziers less useful.

if you force the bezier to have the 2 middle points in the same spot, you can only bend the link one way (Stage2 to Stage3). But if you go with the out-of-the-box behavior, you can bend any which way (Stage4-Stage5).
The screenshot above is from a app we built for office workers / salespeople (not the most tech savvy bunch). None of them have ever complained the link bending was too complex.

Jake, thanks for your response.

It's too bad that it's a lot of work. I wonder how much is "a lot"? I am not afraid to get my hands dirty and did hope to achieve this.
As for making the curve only bend one way - this is precisely what I am trying to achieve. I want a simple arc rather than a bezier. This is for reasons of layout rather than because I'm concerned that a bezier is beyond the ken of my users.
If it is really not possible I'll make do with a bezier, but if possible I'd really like to be able to provide an arc style link.
Can you offer any further pointers or should I really just give up and make do?
Thanks again.

Let’s assume that you want to continue using Bezier-style strokes/links, but that you just want to have a single resize handle for the control point(s).

Override AddSelectionHandles to create three selection handles -- just one regular resizing selection handle for both control points.
Override DoResize so that when the user is dragging the middle selection handle it sets both control points of the stroke.

Just the job.

Thanks!