行頭(弱)禁則文字が連続しているかどうかの判定って
「ぶら下げ」式の場合、意味が無い気がするんだけどな……。
( lastchが「追い出さ」れる事が無いから )

基本的に両者の禁則処理に差は無いはず……たぶん。きっと。
MessageLayer.lineSpacing == ( HistoryLayer.LineHeight - fontHeight)
になるように意識すれば、行間は MessageLayer の設定に近づけられる。
HistoryLayerの問題は、
・pitch     が無い。(0固定扱い)
・marginRCh  が無い。(0固定扱い)
上記の二つなので、MessageLayerの設定のほうをコレに合わせれば、
理屈の上では同じ表示状態を維持できる。

// sage 忘れた。徹夜でMessageLayerの解読やるとします。 orz