First, to make that clear: The Heston model does not generate negative volatility, but - for example - an Euler discretization of the Heston model may generate negative volatility (or variance). It is not a problem of the model. It is a problem of the numerical scheme.
If you use an Euler scheme which generates negative volatility and then use any of the methods quoted in you question (e.g. floor volatility, take absolute value of volatility, etc.), then you are effectively modifying the model. As a consequence, the calibration quality of the model may suffer since analytic formulas are no longer valid. Working with a finer time-discretization may heal this, since the probability to hit zero gets smaller.
That said, I assume the question here rather is: Which numerical scheme should be used for Heston model?
Here it may be useful to take a look at the paper by Broadi and Kaya:
Broadie, M.; Kaya, O.: Exact Simulation of Stochastic Volatility and other Affine Jump Diffusion Processes. Operations Research, 2006, Vol.54, No.2, 217-231.
See also http://finmath.stanford.edu/seminars/documents/Broadie.pdf