Hello!
Regarding the Photoshop gradient, we already discussed this a little bit in another thread. The thing is that Photoshop add random noise to emulate intermediate colors. This could be done to some extent in LazPaint, however it is not very straightforward. It needs some thinking. I think that the best quality would be achieved by doing some dithering. First the gradient would be rendered with high precision (to that extent, maybe TExpandedPixel would be sufficient) and then colors reduced to TBGRAPixel using Floyd-Steinberg dithering. I guess that would be even better than Photoshop gradient, that uses a random-based dithering.
Regarding Septe suggestion, this is indeed interesting. It is not the same subject in fact, but this could be handy to generate gradients in other color spaces than RGB. It is not very obvious because there are different ways colors can be related within a color space with a hue parameter. Basically, we can go round the circle in a clockwise or anticlockwise way.
We could do that we could simply use the smallest arc. However, that is not necessarily what we might want to do. This would be no problem however if we could define multiple colors in the gradient, not just two colors. Then we could choose intermediate colors to go round the way we would like.