I understand the island issue.
In relation with your advice of making a MaskLaye with one multigeometry i have to tell you that it doesn´t work. The application fails in FeatureMaskLayer::getOrCreateMaskBoundary. This is not prepare to multigeometry, in concrete in the line:
_boundary = f->getGeometry()->createVec3dArray(); // Not works with multigeometry