There are two issues for your first fit: (1) Numerical instability and (2) The function used does not describe the data generation process. (There's a joke about a restaurant: "The food is bad and the portions too small.")
To account for the numerical instability one can rationalize the data and look for an estimation approach that minimizes the effect of the numerical instability.
(* Rationalize data *) data = Rationalize[{{18.87`, 4.12`}, {19`, 13.97`}, {19.05`, 18.24`}, {19.34`, 57.2`}, {19.46`, 68.56`}}, 0]; (* Define mean square error (mse) *) mse = Mean[(data[[All, 2]] - a Exp[-Exp[k1 data[[All, 1]]]])^2]; (* We can solve for a in terms of k1 that minimizes mse *) (* Solve for a when the partial derivative of mse with respect to a \ is zero *) aMLE = Solve[D[mse, a] == 0, a][[1]]; (* Substitute the maximum likelihood estimate for a into mse *) msek1 = mse /. aMLE // Simplify; (* Show the mean square error with respect to a range of values of k1 so that we can get a good starting value for determining the maximum likelihood estimate of k1 *) Plot[msek1, {k1, -15/100, 0}, WorkingPrecision -> 30, Frame -> True, FrameLabel -> (Style[#, Bold, 18] &) /@ {"k1", "Mean square error"}]

It looks like using -0.05 as a starting value would be good.
(* Find the value of k1 that minimizes the mean square error *) mlek1 = FindMinimum[msek1, {k1, -5/100}, WorkingPrecision -> 30] (* {645.535378482149759242839439463, {k1 -> -0.0521446026994104927047957817487}} *) (* Find the value of a that minimizes the mean square error *) aMLE = aMLE /. mlek1[[2]] (* {a -> 47.0187082854078929751066054679} *) (* Now plot the data and the fit *) Show[ListPlot[data], Plot[a Exp[-Exp[k1 t]] /. Flatten[{aMLE, mlek1[[2]]}], {t, Min[data[[All, 1]]], Max[data[[All, 1]]]}]]

With more reasonable starting values NonlinearModelFit arrives at the same solution as above.
nlm = NonlinearModelFit[data, a*(Exp[-Exp[k1*t]]), {{a, 50}, {k1, -5/100}}, t, WorkingPrecision -> 30]; nlm["BestFitParameters"] (* {a -> 47.0187082854078921351911223749, k1 -> -0.0521446026994104962006888082853} *)
So now we have a fit that minimizes the mean square error (and is also the maximum likelihood fit) but the fit is at best poor. If there is a theoretical reason for the chosen function, then the data is either selected from some other generating model or the theory needs rethinking.
aandk1withdatagiven on MMA 12, it issues a warning. Try plot your data:ListLinePlot[data, Mesh -> All], and a model function with varying parameters (withManipulatee.g.), probably you need to change model. $\endgroup$