1. Perhaps only half (of 3a, kind of) needed to be calculated, the other half a much simpler speckle.
2. If you add a surface shader with children after water shader water often turns black, I've had that as well. Best to use no children.
I wouldn't dare rendering SSS stuff like this on my old machine, but theoretically it should be possible to make nice air bubbles inside the ice by min and max altitude, a get altitude and a sinus function, multiplied by some vertically stretched 'air pocket areas'.