By trial and error, integration as far as t == 1.3773405394574811 can be achieved with
s = NDSolveValue[{m1*x1''[t] == F1[t] - Ff12[t], x1'[0] == 0, x1[0] == 0, m2*x2''[t] == F2[t] + Ff12[t], x2'[0] == 0, x2[0] == 0, Ff12[t] == If[Abs[x1''[t] - x2''[t]] < .1 && Abs[Fs12[t]] < mus*Fn12, Fs12[t], muk*Fn12*Sign[x1''[t] - x2''[t]]]}, {x1, x2, Ff12}, {t, 10}, MaxStepSize -> 2 10^-4]; Show[Plot[Fs12[t], {t, 0, 1.377}, PlotStyle -> Directive[Black, Dashed]], Plot[Evaluate@Through[s[t]], {t, 0, 1.377}, PlotRange -> All], ImageSize -> Large, AxesLabel -> {t, "x1, x2, Ff12, Fs12"}, LabelStyle -> Directive[Bold, Black, Medium]] although with four messages.
NDSolveValue::pdord: Some of the functions have zero differential order, so the equations will be solved as a system of differential-algebraic equations.
NDSolve::tddisc: NDSolve cannot do a discontinuity replacement for event surfaces that depend only on time. (twice)
NDSolveValue::reinitfail: Unable to reinitialize the system at t = 1.3773405394574811` within specified tolerances.
Comparison between the Ff12 curve (green) and Fs12 curve (black dashed) suggests that Ff12 can be approximated by
Ff12[t] == If[Abs[Fs12[t]] < mus*Fn12, Fs12[t], muk*Fn12*Sign[Fs12[t]]] which allows integration to proceed as far as t == 10.
ss = NDSolveValue[{m1*x1''[t] == F1[t] - Ff12[t], x1'[0] == 0, x1[0] == 0, m2*x2''[t] == F2[t] + Ff12[t], x2'[0] == 0, x2[0] == 0, Ff12[t] == If[Abs[Fs12[t]] < mus*Fn12, Fs12[t], muk*Fn12*Sign[Fs12[t]]]}, {x1, x2, Ff12}, {t, 10}, MaxStepSize -> 10^-3] A plot over the same domain as in the first plot suggests that this approximation is fairly good.
The plot over the entire domain is
This approach is by no means perfect but nonetheless produces reasonably credible results.


