Have not taken the time yet to reproduce and analyze the situation in the debugger, but
ignore the bad line in workflow-api
AFAICT this aspect of the bug is in Jenkins core: malformed Base64 results in an IllegalArgumentException, rather than being suppressed quietly in ConsoleAnnotationOutputStream due to a null return value or IOException from ConsoleNote.readFrom. That would be a bug in UnbufferedBase64InputStream and/or ConsoleNote.
The deeper cause is of course that the annotations are mangled to begin with, which as previously mentioned might have a similar root cause as previously fixed synchronization bugs.