It looks quite ok. I tried the opacity with a surface shader and inputting default's opacity from the original mask, so the rest as child on the surface shader. But you get hard edges on the smoke. It's tricky, but it would be wonderful if we could have a very basic 'glass' shader unaffected by render subdiv, refraction, reflection or GI, or whatever, just serving as gradient transparency.