Accounting for life time

d is distance to SURFACE of obj.
T is life time
r is object radius
ObsSpeed is max speed of observer
MinDist is minimum distance between observer and object
returns {reachable distance >= MinDist, maximum θ reachable}
  Note that reachable distance and maximum θ are BOTH WORST CASE
  The route to be walked is of course different for them
 Note that  function is not upper bounded. We could set an upper bound of 180˚ on θ,
 but this is not necessary as distortion will be too high much earlier for imposters.

Clear[r, d, MinDist,  ObsSpeed]

Simplify[Sqrt[(((r + d))^2) - (((r + MinDist))^2)]]

DandθAfterT[d_, r_, T_, ObsSpeed_, MinDist_] := 
        Module[{dside, W}, 
W = 
            T*ObsSpeed; 
dside = (Sqrt[(d - MinDist) (d + MinDist + 2 r)]);  (* 
            dside = distance to side of object *) 
{Max[d - W, MinDist], 
If[
              d ≤ MinDist, 
              W/(r + MinDist), 
If[W > dside, 
                ArcSin[dside/(r + d)] + (W - dside)/(r + 
                        MinDist), 
ArcSin[
                  W/(d + 
                        r)]
]

]
}
];

DandθAfterT[10, 1, 1, 1,  .1]

Plot[
      180/π DandθAfterT[10, 3, t, 1,  .2][[2]], {t, 0, 
        20}]

\(Plot3D[
      180/π\ \(DandθAfterT[10\^d, 1, 10\^t, 
            1,  .2]\)[\([2]\)], {t, \(-1\), 1}, {d, 0, 2}, 
      AxesLabel -> {"log T", "log d", "θ after T"}, 
ViewPoint -> {\(-2.755\), \ \(-1.531\), \ 
          1.231}, 
PlotRange -> All]\)

We could cut off at 90˚ or 180˚, but that is not necessary for other modules.

Old approximation

DandθAfterTSimple[d_, t_, 
          ObsSpeed] := {If[d - t*ObsSpeed > MinDistance, d - t, MinDistance], 
          ArcSin[t/d]};

Plot[
      180/π DandθAfterTSimple[10, t, 1][[2]], {t, 0, 
        20}]