How to silence a creaking cassette/freehub body
There should be no significant movement between the hub body and the cassette. Because of that, lubricant choice should not make any difference. The very fact that applying lubricant temporarily makes the noise go away means that there is too much relative movement between parts which are not supposed to move. Not only it sounds annoying, it may well shorten life of the freehub body by gouging its splines.

The only real use a lubricant should have there is to prevent corrosion. What I can suggest:


Make sure you tighten the cassette to a torque specified by the manufacturer. It is typically a high value (40 Newton-meter or so), and it really makes difference.
Check tolerances of the hub's and the cassette's splines. Are splines wide/high enough to fully engage with their counterparts? It might not be easy to do without high-precision tools. But if you have a component with poor interface tolerances, it will be hard to alleviate this without swapping the components. You might be able to compensate the gap between them by filling it with thin metallic shims (people have used sewing nails, paper clips etc.), but there are no guarantees that it will be possible or even work.