その方法じゃどうやったって、tty消費するよ。なんでそんなこと気にするのかは
疑問だけど、やるんだったら
ssh -f -L 10022:hostB:22 userA@hostA sleep 600 とダミーのバックグラウンド
プロセス動かしつつ(tty消費しない)ポートフォワードして、
ssh -p userB@localhostでhostBにつなぐとか。

ちなみに、この例だと600秒経過後ひとつめのシェルコマンドは終了するけど、
2番目の接続が終了するまで、ポートフォワードしたまま待ちになる。

puttyとかで一番目の方法を実現できるのかは知らない。(Cygwinだとできる)