Since v1:BillboardSet runs createBuffer() during frame rendering and it calls setMaterialName() which loads the material if not already loaded then you end up in the https://github.com/OGRECave/ogre-next/issues/33 situation where VaoManager::update(); gets called when it shouldn't be.
The solution, of course, was to preload the v1 materials and force the load().
I should probably move away from v1 materials and other v1 stuff...