Light maps break with construction script

I am assembling an object in “OnConstruction” in C++. It is supposed to be static, and receive and cast static shadows, and everything works fine.

UNTIL I reload the scene, at which point the shadows cast by my procedural object stay in place, but the shadows received by it disappear – it seems like the Construction script gets forcibly called when the level is loaded, even though nothing has changed with the object. This is very frustrating! Is there something I’m missing that’s keeping me from baking lighting with procedurally assembled geo?