There is a bug in fontconfig before 2.2.39 (Feb 2018) which means that if a font contains a cmap entry to an empty glyph, that character is not considered part of the character set for that font and a different font will be used to font link in the offending character. Unfortunately, while the latest fontconfig no longer does this, the version of fontconfig in Ubuntu 18.04 is 2.2.6 which has this bug and no workaround.
On this basis, I suggest we create representative glyphs for the tone marks calling them u16F8F.visible and have those in the cmap. Then we write a conversion lookup to convert them to the existing u16F8F and carry on as before.
There is a bug in fontconfig before 2.2.39 (Feb 2018) which means that if a font contains a cmap entry to an empty glyph, that character is not considered part of the character set for that font and a different font will be used to font link in the offending character. Unfortunately, while the latest fontconfig no longer does this, the version of fontconfig in Ubuntu 18.04 is 2.2.6 which has this bug and no workaround.
On this basis, I suggest we create representative glyphs for the tone marks calling them u16F8F.visible and have those in the cmap. Then we write a conversion lookup to convert them to the existing u16F8F and carry on as before.