It is such a coincidence to find your project. ShadowDOM is my biggest issue with WebComponents and I got to a solution similar to yours.
Did you implement <slot> for light DOM or just use attributes?
Did you implement <slot> for light DOM or just use attributes?