You can  (1) use `ListDensityPlot` with options `InterpolationOrder -> 1` and `MeshFunctions` to create mesh lines, and (2) use the function `smoothCP` from [this answer](https://mathematica.stackexchange.com/a/172395/125) to smooth the mesh lines:

    ClearAll[smoothCP]
    smoothCP = Module[{pr = PlotRange @ #,  nF =  Nearest[Join @@ Cases[Normal @ #, 
           Line[a_] :> Transpose[#2 /@ Transpose@a], ∞]]},
       # /. GraphicsComplex[a_, b__] :> GraphicsComplex[ 
           If[Or @@ MemberQ @@@ Thread @ {pr, #}, #, First @ nF @ #] & /@ a, b] ] &;
       
    ldp1 = ListDensityPlot[data, InterpolationOrder -> 0, 
       PlotRange -> All, AspectRatio -> 4/5, ImageSize -> 300];
    ldp2 = ListDensityPlot[data, InterpolationOrder -> 1, 
       PlotRange -> All, AspectRatio -> 4/5, ImageSize -> 300, PlotStyle -> None,
       MeshFunctions -> {Round@#3 &}, Mesh -> 2, MeshStyle -> Directive[Thick, Red]];

     Row[{Show[ldp1, ldp2], Show[ldp1, smoothCP[ldp2, GaussianFilter[#, {5, 5}] &], 
       PlotRange -> All]}]
[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/rejbL.png