For the previous version of my renderer, I was able to render this scene in 36 seconds. After tracing through the entire set of volumes that each ray hits (in a naive approach), render times go down to 1.5 seconds. Switching to a less naive approach (ensuring proper sorting of the surfaces) made negligible difference. I suspect this is because there are very few rays that go through more than a couple triangles, and my ray-triangle intersections will reject bad triangles at a further Z-distance pretty quickly.
MacBook Pro (15-inch, 2016)
2.7 GHz quad-core Intel Core i7 Skylake (6820HQ)
16 GB 2133 MHz LPDDR3 RAM