How can I make a table take up the remaining vertical space on the page without going over?

This might also count as a workaround…I put the “outside” content in the grid with a borderless, insetless cell so that there wasn’t any outside stuff to confuse the row height calculation:

#set page(width: 10cm, height: 10cm)

#grid(
  columns: (1fr, 1fr),
  rows: (1fr, 1fr),
  stroke: black,
  inset: 2mm,
  grid.cell(colspan: 2, stroke: none, inset: 0pt, [
    Blah blah

    Blah

    Hello]),
    "a", "b",
    "c", "d"
)