ClearAll["Global`*"]

(* Bézier cubics throughout *)

$Assumptions=t∈Reals&&t≥0&&t≤1&&z∈Reals&&z>0&&z<1;

KnotsFromCoeffs[{c0_,c1_,c2_,c3_}]={c0,c0+c1/3,c0+(2c1+c2)/3,c0+c1+c2+c3};
CoeffsFromKnots[{z0_,z1_,z2_,z3_}]={z0,-3 z0+3 z1,3 z0-6 z1+3 z2,-z0+3 z1-3 z2+z3};

(* Simple check *)
KnotsFromCoeffs[CoeffsFromKnots[{z0,z1,z2,z3}]]//Simplify

(* Simple check *)
CoeffsFromKnots[KnotsFromCoeffs[{c0,c1,c2,c3}]]//Simplify

tPowers={1,t,(t^2),(t^3)};

(* Curve starts at (1,0) *)
x0=1;y0=0;
(* Curve ends Angle widdershins away from that *)
x3=Cos[Angle];y3=Sin[Angle];
(* Middle knots distance z away from from ends, in required direction *)
x1=1;y1=z;
x2=x3+z Sin[Angle];y2=y3-z Cos[Angle];
x=Simplify[tPowers.CoeffsFromKnots[{x0,x1,x2,x3}]];
y=Simplify[tPowers.CoeffsFromKnots[{y0,y1,y2,y3}]];

Block[{Angle=π/2,z=0.552},ParametricPlot[{x,y},{t,0,1}]]

(*
	(* I prefer to do this as the minimisation of an integral, but that is difficult. *)
	partialImperfectness=FullSimplify[((((x^2)+(y^2)-1))^2)D[ArcTan[y/x],t]];
	partialImperfectnessZ=FullSimplify[D[partialImperfectness,z]];
	imperfectnessZ=Integrate[partialImperfectnessZ,{t,0,1}];
	Solve[imperfectnessZ==0,z]
*)

Solve[(x/.{t->1/2})==Cos[Angle/2],z]

z=FullSimplify[z/.%[[1]]]

Plot[z/.{Angle->a π/180},{a,0,90}]

(* How different from a straight line? *)

Plot[(z/.{Angle->a π/180})-(a/90)(z/.{Angle->π/2}),{a,0,90}]

(* So slightly different. *)

Block[{Angle=π/6},ParametricPlot[{x,y},{t,0,1},AspectRatio->((Sin[Angle])/(1-Cos[Angle]))]]