There are some cases where the email-ext plugin incorrectly reports the "current" build status. I'm still not sure if this is a (scripted) pipeline restriction or a problem in email-ext. For my company it became especially bad now with the update of pipeline-maven-plugin from 3.5.14 to 3.5.15 (based on its implementation of
JENKINS-27395, https://github.com/jenkinsci/pipeline-maven-plugin/commit/cfe37eeb66c07fc81c286f78499acfdef7aa05ec) - This change now changed all "UNSTABLE" mails to "SUCCESS" mails, which totally confuses our developers
The other case where I already implemented a workaround is when some step throws an exception:
If there were some way to either let Jenkins update the global job status from the individual step status or postpone the emailext exection after Jenkins can determine if the pipeline was successful or not, that would help a lot...