The “zero-width space” character “\xe2\x80\x8b” does actually produce spaces. This should probably be fixed to not happen by engine.
If I add some negative text tracking it does look better
Here is example project
UTF8JapaneseText.zip (2.1 MB)
This could probably be made smarter by detecting non-Japanese chars and not adding zero-width space char after them so they don’t split in half when mixed in but then that would mess up the tracking.
There are also some special situations to consider Requirements for Japanese Text Layout