Preliminaries

h[x_]:=1/Pi(Sqrt[1-x^2]-x ArcCos[x]);
G[λ_, z_]:=λ h[z/λ];
Wdisk[d_,λ_]:=(λ/2)^d Gamma[1+d/2]^(-2);
κ[d_,m_]:=If[m==0,1,Binomial[m+d-1,d-1]-Binomial[m+d-3,d-1]];

Verified approximations

CosUp[x_]:=1-((x^2)/2)+((x^4)/24)-((x^6)/720)+((x^8)/40320)-((x^10)/3628800)+((x^12)/479001600);
CosDown[x_]:=1-((x^2)/2)+((x^4)/24)-((x^6)/720)+((x^8)/40320)-((x^10)/3628800)+((x^12)/479001600)-((x^14)/87178291200);
VerifiedQUpArcCos[x_,ϵ_]:=Module[{ac0,ac},
ac0=ArcCos[x];
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0+2ϵ,ϵ];If[CosUp[ac]>=x, Message[VerifiedQUpArcCos::Error, x], ac]]; 
(* ac=Rationalize[ArcCos[x]+2ϵ,ϵ]; *)
ac
];
VerifiedQUpArcCos::Error="ArcCosUp of argument `1` is wrong!";
VerifiedQDownArcCos[x_,ϵ_]:=Module[{ac0, ac},
 ac0=ArcCos[x];
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0-2ϵ,ϵ];
If[CosDown[ac]<=x, Message[VerifiedQDownArcCos::Error, x], ac]];
ac
];
VerifiedQDownArcCos::Error="ArcCosDown of argument `1` is wrong!";
VerifiedQUpSqrt[x_,ϵ_]:=Module[{ac0, ac},
ac0=Sqrt[x];
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0+2ϵ,ϵ];  If[ac^2<x, Message[VerifiedQUpSqrt::Error, x], ac]];
ac
];
VerifiedQUpSqrt::Error="SqrtUp of argument `1` is wrong!";
VerifiedQDownSqrt[x_,ϵ_]:=Module[{ac0, ac},
 ac0=Sqrt[x];
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0-2ϵ,ϵ];  If[ac^2>x, Message[VerifiedQDownSqrt::Error, x], ac]];
ac
];
VerifiedQDownSqrt::Error="SqrtDown of argument `1` is wrong!";
VerifiedQUpRoot[x_,d_,ϵ_]:=Module[{ac0, ac},
ac0=x^(1/d);
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0+2ϵ,ϵ];  If[ac^d<x, Message[VerifiedQUpRoot::Error, x], ac]];
ac
];
VerifiedQUpRoot::Error="RootUp `2` of argument `1` is wrong!";
VerifiedQDownRoot[x_,d_,ϵ_]:=Module[{ac0, ac},
 ac0=x^(1/d);
If[MatchQ[ac0,_Rational]|| IntegerQ[ac0], ac=ac0, 
 ac=Rationalize[ac0-2ϵ,ϵ];  If[ac^d>x, Message[VerifiedQDownRoot::Error, x], ac]];
ac
];
VerifiedQDownSqrt::Error="RootDown `2` of argument `1` is wrong!";

Algorithm

PiUp[ϵ_]:=3VerifiedQUpArcCos[1/2,ϵ];
PiDown[ϵ_]:=3VerifiedQDownArcCos[1/2,ϵ];
GQDown[λ_, z_, ϵ_]:=(VerifiedQDownSqrt[λ^2-z^2, ϵ]-z VerifiedQUpArcCos[z/λ, ϵ])/PiUp[ϵ];
WdiskQUp[d_, λ_,ϵ_ ]:=Wdisk[d,λ]/.Pi->PiDown[ϵ];
adisk[d_,ϵ_]:=WdiskQUp[d, λ,ϵ]/λ^d;
PNeuQDown[d_,λ_, ϵ_]:=Total[Table[κ[d,m] Floor[GQDown[λ, m+d/2-1, ϵ]+3/4], {m,0,Floor[λ-d/2+1]}]];

StepCheck[d_,λ_, ϵ_]:= Module[{e, λnew},
e=Total[Table[κ[d,m] Floor[GQDown[λ, m+d/2-1, ϵ]+3/4], {m,0,Floor[λ-d/2+1]}]]-WdiskQUp[d, λ,ϵ];
If[e<=0, Print["Process stopped with e=",e];Return[]];
λnew= VerifiedQDownRoot[λ^d+e/adisk[d,ϵ],d,ϵ];
{λ,λ//N, e,e//N, λnew,  λnew//N}
];
RunChecks[d_, Λstart_, Λend_,ϵ_,printstep_]:= Module[{Λ, nI, data,step},
data={};
nI=1; 
Λ=Λstart;
Print["d="<>ToString[d]];
Do[
step=StepCheck[d,Λ, ϵ];
If[printstep,Print[step]];
AppendTo[data,step];
If[step[[5]]<=Λ, Break[]];
Λ=step[[5]];
If[Λ>=Λend , Break[]];
,
{nI,1,100000}
];
step=StepCheck[d,Λ, ϵ];
If[printstep,Print[step]];
AppendTo[data,step];
data
];

Actual Calculation

Λ20short=3;
Λ21short= 14;
data2dshort=RunChecks[2,3,14, 10^(-3),True];
tb2short=Table[{j,data2dshort[[j,1]],data2dshort[[j,3]],data2dshort[[j,5]]-data2dshort[[j,1]]}, {j,1, Length[data2dshort]}]//TableForm