Wind Farm Layout Optimization places turbines to maximize the expected energy under a wind rose, each turbine lowering the wind downwind. In the EndoWake model the wind field is a variable, propagated by linear inequalities, and layouts are certified by branch-and-check. On a ladder of grids it certifies the $10\times10$ grid and leaves the larger grids open after one hour. We tighten the relaxation by a convexification computed rather than derived: every pattern of turbines inside a small tile of the grid is enumerated once with its power and enters the master as a column. The device is valid because the wind field is antitone, and exact, for the cubic power curve, with a Benders cut at integer layouts. Reduced-cost fixing and propagation between overlapping tiles shrink the master before the tree search, and the tree repeats the fixing at every improving incumbent. The incumbent comes from a tile heuristic or an LP dive. On the same computer as the branch-and-check, the $12\times12$ and $14\times14$ grids close in 48 and 395 seconds. The $16\times16$ grid is certified on five seeds from random starts, one job per seed, the heuristic on a GPU, in 1413 seconds under the uniform rose and 6484 seconds under a non-uniform one. Times are medians. A pre-specified test set of 36 unseen instances with forbidden cells confirms the advantage in the axial setting. Certified means closed at the solver's gap of $10^{-4}$: the optimum lies within it plus a residual of at most 0.00042%.
We build on EndoWake, an endogenous wake model that links the wind speed at every grid cell to its upwind neighbors by linear constraints, so that wake field, siting decisions and project constraints share one mixed-integer model. Its four parameters are calibrated once on the single wake of a Reynolds-averaged Navier-Stokes (RANS) simulation, and a graphics processing unit (GPU) scores over a million layouts per second per wind direction. At Lillgrund, we compare searches guided by EndoWake and by PyWake under a RANS judge that no search calls: the fidelity of a wake model is not the quality of the layouts optimized under it. Two diagnostics separate a quadrature error between the sampled wind directions from a surrogate bias localized off each wake edge, not reported before to our knowledge; at random directions, five paired starts detect no difference between the pipelines. The main result puts the speed to use: EndoWake ranks the moves of a local search on the GPU, and PyWake confirms every accepted move. On twenty unseen starts, with one GPU and thirty CPU processes, screen-and-confirm reaches similar mean gains to a search on PyWake alone, 7.9 times faster at one wind speed and 14.9 times faster on the annual energy (3.0 and 4.7 with a proof of local optimality charged to the timed search); on a second site it keeps its speed, and its local optima fall slightly short of those of PyWake alone. Code and data are deposited on Zenodo.