Noise is caused by Opacity and Path term. parameter.
1. Instead of using a Gradient in Opacity, use it in Specular.
2. Lower Path term.(ination) parameter to 0.
3. If you need to composite your renders in post, use Render Layers instead of masks.
4. Use: Render Passes/Info Passes/Max samples to set the quality of your Render Layer Masks ( but it looks like they are limited to ~256
)
Also, please keep in mind that
denoising is not going to work correctly on renders with alpha channels, ID masks etc. This is NOT a bug, it's just how the world works, sure you can try and you might have some success... if you can get away with artifacts.
Here is the render with 64 samples denoised.
Bonus tip:
For cleaner renders (esp. when Opacity is involved) keep your Max Samples number to a multiple of 2, i.e. 32, 64, 128, 256, 512 etc.
Cheers
Milan