Your comment on patterns in column 4 led me to notice that there's a pattern in the optimal dissections in that column that can easily be extended. Here's a new dissector that implements this and hence fills in 27,4 and 29,4:
def col4_dissector(n,m):
if m != 4: return []
if n % 2 == 0: return []
d = (n-1)/2
bit = Fraction(1, d)
return [([[(2, (n*bit,) * d), (2, ((n-2)*bit,) * d + (2,))],
[(1, (2, 2)), (n - 1, (n*bit, (n-2)*bit))]],
"general pattern for m = 4, n odd")]
Sorry to provide you with additional results just when you thought you'd finished.
Sorry to provide you with additional results just when you thought you'd finished.