When a plugin reports a tail length of 0 seconds directly after construction, the Vst2::effFlagsNoSoundInStop is set which prevents proper tail handling if the reported tail length changes later on.
At our company we work around this by reporting something larger than 0 on the first call of getTailLengthSeconds() but there could be a solution like this:
virtual bool AudioProcessor::hasTail() const { return getTailLengthSeconds() != 0; }
We could then overwrite this in cases like ours, where the tail length may be changing after the construction.
Just as an idea.
