Restoring headers after switching states was triggering _on_column_toggled(), leading to unexpected results.
The previous behaviour when a non-sortable column was clicked was to trigger the sorting routine, which was usually a no-op, but would reorder rows if the configured sort column was hidden.