An issue to consider with developing a solution for columns or pushing the TOC onto multiple pages is that the TOC may have multiple levels, and those levels must be preserved if the break does not occur during level 0.
Before columns can be done effectively, content types need a preview-limit, or a configurable limit to the number of pages that appear without going to the list. Currently this value is hardcoded for each type. Once a limit is set, the column would break once the limit is reached. If the list type supports columns (as categories and books would), then the limit would have to be reached twice before no more entries can be shown.
The list-view should still show entries in a single column, but be paginated based on the normal paging options for those types. This is because for column-capable types, the list view still shows the full listings as other content types, including last-update and moderator controls. Breaking this view into columns could become cluttered.
I personally have a wiki that has one book with almost 300 chapters, and I agree the list is long (and uses unnecessary resources). Adding both column support and list support to books, as well as updating the other types to have configurable front-page limits, will greatly improve these features.