DrawXXX()どころかEndScene()やPresent()すら描画が終了している
保証はないみたいだよ。(SDKドキュメントに書いてある)
描画コマンドとの同期はIDirect3DQuery9で調べてみると幸せかも。
あとV-BlankはGetRasterState()で自前で検出できるみたいだからそっちも試してみたら?