Wow! I don't know what's more amazing ... a question about a decade old post, the fact that the monastery is still here after ten years, or that I'm still here to answer it.
The problem is GPG has not been updated in a dozen years but gpg has. Looks like the underlying options to the gpg command
--batch --no-comment --no-version
are no longer sufficient to keep non-error messages off of STDERR. GPG
interpets anything on STDERR as an error and will not return the output
$this->error($error) and return if $error;
So ... the real solution is to use a newer module (maybe GnuPG -- but I haven't really looked into it). But ... if you're feeling hacky, you can always modify GPG to use the --quiet option and that should prevent
information on STDERR from blocking the decrypt.