Your suggestion of flow into the network from the top-left corner works great!
I implemented it using four tables for the flows into a cell, from the top, the right, the bottom and from the cell to the left. These flows are constrained by zero flow through the outside boundaries, except for the single flow at the top left or second from left, by continuity across interior boundaries and zero flows through the boundaries of the black cells. I then “discovered” that the condition of a single unit of flow remaining in each uncovered cell and the zero flow condition for the covered cells correspond exactly to the mask I used to identify covered and uncovered cells. Then, by maximizing the number of cells where the remaining flow corresponds to whether the cells is covered or not, one finds the solution.
I tested my MiniZinc model on several instances, including a 15x15 hard one. Most of the solvers find the unique solution within half a second.
BTW, you must have quite some experience with network flow models to have realised that the connectedness condition could be modelled as network flow.
So, with great appreciation, thank you for your suggestions.