Yep that is what I was thinking. We want to clear buffers / effect tails / meters etc. also when bypassing and then un-bypassing, not just when switching between non realtime and realtime rendering. So we implemented the timer based thing also for audio stuff. Of course that only works in realtime mode but hey - it’s something. For offline rendering we have to rely on processBlockBypassed() or the bypass parameter so there will be a known issue regarding offline rendering in Logic, Reaper and possibly other more exotic DAWs. I’m curious whether that all goes through release qualification… 
As part of the implementation I did some research on which DAW does what to implement bypass that I think could be handy for others should they find themselves in the position of having to “fix” the bypass handling of their plugins.
Cubase 13
Deactivating by clicking the Activate button
Stops calling processBlock() and does not call processBlockBypassed()
Activating by clicking the Activate button
Calls perpareToPlay()
Bypassing by clicking the Bypass button
Without getBypassParameter() overridden
Calls processBlockBypassed()
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 1.0
Un-Bypassing by clicking the Bypass button
Without getBypassParameter() overridden
Starts calling processBlock() again
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 0.0
Differences between VST2 & 3
Could not check as Steinberg is the only DAW manufacturer not supporting VST2 on an M2 Mac
Pro Tools Ultimate 23.09
Bypassing by clicking the Bypass button in the plugin window frame
Without getBypassParameter() overridden
Calls processBlockBypassed()
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 1.0
Un-Bypassing by clicking the Bypass button in the plugin window frame
Without getBypassParameter() overridden
Starts calling processBlock() again
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 0.0
Logic Pro X
Bypassing and unbypassing using the on/off button in the plugin window frame or channel strip
Stops & resumes calling processBlock()
You cannot really get logs very well from Logic now that they’re sandboxing plugins in AUHostingService. So the behaviour is my best guess for the symptoms I saw.
Studio One 6
Deactivating by clicking the Activate button
Stops calling processBlock() and does not call processBlockBypassed()
Activating by clicking the Activate button
Calls perpareToPlay()
Bypassing by clicking the Bypass button
Without getBypassParameter() overridden
Calls processBlockBypassed()
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 1.0
Un-Bypassing by clicking the Bypass button
Without getBypassParameter() overridden
Starts calling processBlock() again
With getBypassParameter() overridden
Continues to call processBlock() with bypass parameter set to 0.0
Differences between VST2, VST3 & AU
None
Live
Deactivating by clicking the Device Activator button
Stops calling processBlock()
VST2: Activating by clicking the Device Activator button
Calls perpareToPlay()
AU & VST3: Activating by clicking the Device Activator button
Starts calling processBlock() again
Reaper
Deactivating the plugin by unchecking the checkbox
Stops calling processBlock() and does not call processBlockBypassed()
Activating the plugin by unchecking the checkbox
Starts calling processBlock() again
Differences between VST2, VST3 & AU
None
Adding a dedicated bypass parameter and returning it to JUCE wrappers by overriding getBypassParameter()
Three of the tested DAWs change their behaviour:
Cubase 13
Pro Tools Ultimate 23.09
Studio One 6
all continue to call processBlock() with the bypass parameter set to 1 instead of 0 when bypassed.
Studio One and Cubase have the additional “Activate” button which behaves the same no matter whether there is a bypass parameter or not.
Difference between effect and instrument plugins
The difference I found is that Pro Tools and Reaper stop calling the processing callback when there is silence in the channel for longer than approximately 15 seconds or so.