I found the cause - it seems it doesn't like a zero count of elements in the indirect draw structs for some reason? If I remove said null elements its all fine. But that's a bit worrying if I want to eventually generate those draws on the GPU instead of CPU...
Also if I use:
glMultiDrawElementsIndirect(GL_TRIANGLES, GL_UNSIGNED_SHORT, 0, 0, 0);
It draws something not _nothing_ but doesn't hang my system any more.
So I think that's a driver bug?