SSH デーモンを直接起動するまで待つのが sshd.service で、そうではなく systemd に先に listen させてバッファリングをしつつ必要になってから sshd を遅延起動するのが sshd.socket。
当然後者の方がシステム全体の起動が速くなるのだが、そうなると sshd の設定だけでなく systemd 側でも listen すべきポートの設定が必要になって、それが ListenStream= のやつ。
で、 systemd の cumulative なフィールド (ExecStartPre= などはその一例) は複数回指定すると配列に追加するような挙動になっていて、配列をリセットするには ListenSteam= のように値を指定しない形式の代入を置く。
そういうわけで、 disable sshd.service && enable sshd.socket からの
ListenStream=
ListenStream=2222
のようにしてやることになるわけ
systemd とか無視して旧来の形態でやりたければ当然それもできて、 sshd.socket を disable しといて sshd.service を直接 enable してやれば良い
systemd for Developers I
https://0pointer.de/blog/projects/socket-activation.html
このへん読むと socket activation の思想わかるかも