I had a silly idea. I can't say I've done it before myself (it'd be dog slow), and I don't know if there'd be a better way to go about it, but what if you only denoised the chroma, then denoised the chroma and luma? You could probably get away with less noise removal the second time around because it'd look more like grain. It's probably mainly an improvement for flat areas of color, such as the sky, and not so much everywhere else.
A = MAA()
MergeChroma(A, A.TemporalDegrain())
TemporalDegrain2()
DeHalo_alpha_mt()
You could do something like this, just to double denoise where it's needed.
A = MAA()
B = A.TemporalDeGrain2()
C = MergeChroma(A, A.TemporalDegrain()).TemporalDegrain2()
B.Trim(0,478) ++ C.Trim(479,683) ++ B.Trim(684,0)
DeHalo_alpha_mt()
Except the logic for running two instances of TemporalDeGrain2 in a script doesn't seem right. To make that work you need to change line 156 in the script to this:
ReplaceGlobals = true