Gave it another go. Oh look, there's two mines in three cells. 1/6 possibility of getting this right. (I did not get it right)
edit: it's 1/3, of course; mines aren't distinguishable
You should consider making the game generate levels guaranteed to be solvable, like e.g. Simon Tatham's version or 14 Minesweeper Variants do. That would let you avoid hand placing safe zones and lowering down mine counts. SGT's version is MIT licensed and the algorithm should not be hard to adapt as your version doesn't alter minesweeper's rules.
Another feature I would love to see lifted is putting the "chord" action on left click. Left clicking opened cell doesn't do anything anyway. 14 Minesweeper Variants in addition makes it perform the complement action: when there are only as many unmarked cells as there are unmarked mines, it marks them all as mines.
Another feature that I think would make later levels less frustrating is to make completed numbers (i.e. with no adjacent unmarked cells and with # of adjacent marked cells matching the number) desaturated.
Oof, the code related to generating guaranteed boards in SGT's version is about 1500 lines long, it's almost as many as this game's entire codebase (excluding header files). Also the code is quite hard to understand at least for me, with all the bit fiddling and set and perturbation stuff. Don't think I have the ability to add this. Feel free to PR if you are able to figure this out though