お世話になります。
Windowsバッチにて、非同期で実行した処理を監視し、処理時間に応じてタイムアウトとしたいです。

以下、行いたかった処理です。

【非同期処理】
start aaa.bat

for (
   aaa.batの戻り値を見てタイムアウト処理を行う
)

startコマンドで非同期で処理を行わせながら、以下のループ内でaaa.batの戻りを監視しそれによって処理を行う。

と、したかったのですが、非同期で先に進んでしまうと、aaa.batの戻り値は受け取れないということで間違いないでしょうか?
aaa.batの状態を検知したい場合、

1) aaa.bat内でファイル出力させるなどなにか別の状態を見てタイムアウトを判断する
2) callの同期処理でaaa.batを呼び出し、aaa.bat内でタイムアウト処理を入れ込み戻りを返す。

上記1,2の話になりますでしょうか?
また、非同期で動いているaaa.batを強制的に終わらせるには、PIDやイメージ名を取得して
Killする以外ないでしょうか?

ご教授のほどよろしくお願いします。