This is not an ideal solution but blender freeing system is already well tangled. So tracking and clearing vao caches when destroying contexts does prevent bad behaviour.