Aus meiner persönlichen Erfahrung heraus:
Auf das "Höhen"-Problem läufst du so oder so auf, da die Browser das unterschiedlich handhaben. Die 1. Variante ist sicher die sauberere Lösung, hat aber den Nachteil, das die Daten vom Server erstmal in JS interpretiert werden müssen. Liefert der Server, wie in Variante 2, gleich
HTML, so sparst du dir und dem Browser die Arbeit.
Die Anzeige der Scrollbalken kannst du via CSS regeln, was über die verschiedenen Browser zwar nicht einheitlich, aber immerhin praktikabel funktioniert.