И вариант с \needspace не прошёл?
\needspace дал непредсказуемый результат:

Ещё интересный глюк: если перед таблицей ставлю \newpage, то текст внизу страницы (только той, где таблица) выходит границы. Причём его там может быть довольно много (он как бы уходит в "пространство между страниц").

На данный момент получилось хоть как-то решить с помощью способа описанного
http://tex.stackexchange.com/questions/129184/how-to-prevent-page-break-between-section-heading-and-longtabu-table (в конце страницы с \newenvironment{absolutelynopagebreak}...). Но, честно говоря, я не очень понял как он работает, и возможно, в моём случае, проще использовать простую таблицу (особенно если она маленькая)...
Я не совсем понял, что Вам конкретно не нравится в том как процессирован test2.tex
Не нравится то, что шапка таблицы остаётся на одной странице, а содержимое переносится на другую. Хотелось бы чтоб хотя бы одна строка с данными была под шапкой, или уж вся таблица на следующей странице.
Сейчас, к сожалению, из-за нехватки времени получается заниматься вопросом лишь эпизодически. Поэтому пока возьму паузу по этому вопросу.
Ещё раз всем спасибо. И, конечно, если будут идеи - пишите, буду пробовать :)