AudioManager.setScreenShareActive(true) was firing before the browser's screen picker, killing the mic stream. The picker suspends getUserMedia while its secure overlay is open, trapping the mic in a dead state for 5-30s. Now the AEC rebuild fires after the track is acquired — mic stays alive during the picker.