The material side of this was actually working. When the refraction input is connected, the normal pin is active. The issue was just visual.
Material result node pin widgets were caching their colour on construction. Changed to recalculate each frame.
[CL 2529948 by Simon Tovey in Main branch]