The solution I ended up using was to ignore trying to span and just use the box code to draw the lines I wanted.
('INNERGRID', (0,0), (0,-1), colors.grey), # gridlines for first column
('BOX', (0,0), (-1,-1), 0.25, colors.grey), # outer border
('BOX', (0,0), (0,-1), 0.25, colors.grey), # inner border
("LINEBELOW", (0, 'splitlast'), (-1, 'splitlast'), 0, colors.grey), # draw bottom line on table split