I just heard back from Figma support — apparently this is a known limitation:
- Layer boolean properties cannot be attached to boolean variables
- Variant booleans CAN be attached to boolean variables
Instead of having a layer toggle on/off, I had to create 2 variants, one with the layer showing and one with it hidden.