Regarding #2:
This seems to be hardware bug indeed. Running the command through linuxserver/ffmpeg:amd64-latest results in the same green subtitles, but on my desktop results in white subtitles.
I don’t know if it’s useful but comparing both vainfos shows a few missing formats:
VAProfileHEVCMain : VAEntrypointEncSliceLP
VAProfileHEVCMain10 : VAEntrypointEncSliceLP
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileHEVCMain12 : VAEntrypointEncSlice
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointEncSlice
VAProfileHEVCMain422_12 : VAEntrypointVLD
VAProfileHEVCMain422_12 : VAEntrypointEncSlice
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_12 : VAEntrypointVLD
The GPU is an Intel UHD 630.
I tried playing around with alpha, converting to YUV, shuffling channels, shifting colors, etc. but it’s always green. The only thing that works is doing the overlay in SW, which decreases performance from 1.61x to 0.74x, thus making transcoding unusable.