audio: Fix output blocking condition in the remote submix

During transition to AIDL, the condition for blocking writes
on the output stream of the remote submix was not transferred
correctly. This logic was fixed.

While testing the fixed logic, some deficiencies in the VTS
tests were found and also fixed.

Bug: 383982254
Test: atest --test-filter="AudioModuleRemoteSubmix*" VtsHalAudioCoreTargetTest
Change-Id: Iecd5ecd329d61764b314744eaf4afb6196a38e3e
diff --git a/audio/aidl/default/r_submix/SubmixRoute.cpp b/audio/aidl/default/r_submix/SubmixRoute.cpp
index 325a012..445b1d3 100644
--- a/audio/aidl/default/r_submix/SubmixRoute.cpp
+++ b/audio/aidl/default/r_submix/SubmixRoute.cpp
@@ -134,10 +134,10 @@
 // - the peer input is in standby AFTER having been active.
 // We DO block if:
 // - the input was never activated to avoid discarding first frames in the pipe in case capture
-// start was delayed
+//   start was delayed
 bool SubmixRoute::shouldBlockWrite() {
     std::lock_guard guard(mLock);
-    return (mStreamInOpen || (mStreamInStandby && (mReadCounterFrames != 0)));
+    return mStreamInOpen && (!mStreamInStandby || mReadCounterFrames == 0);
 }
 
 long SubmixRoute::updateReadCounterFrames(size_t frameCount) {