The next step is to control the initial condition and the boundary condition and to use different functions or different diffusion to model the surface.
The original image 3000 iterations, 120 seconds 2000 iterations After 500 iterations(32 seconds), pixels with height values between 0.1 to 0.000001 are shown in red. It means the narrow areas around the hair have a lot almost-zero heights. 500 iterations
100 iterations
Darker pixels are from ETF and white lines are drawn manually to show the effects. It seems the quality of white lines play an important role to show the constrast.
(Heightening: the term used for highlights applied to a drawing with white chalk or white/tinted bodycolour.)
When tracing the ETF, if it stops at some pixel and let it find which pixel is valid as replacement. It gets some jagged long streamline. After poping it up by dilation, it has kind of smoothing. But it is still messy!