Can you speak a bit more about how you are loading the custom fonts? Are you hosting the fonts, or are they hosted elsewhere? I am going to assume you are hosing since the font company is asking you to keep up with the downloads.
Also, how comfortable are you with context data/processing rules and events/props?
My initial thought is to check window.performance for a particular file to have been downloaded:
window.performance.getEntriesByName('https://www.example.com/fonts..woff2')
If you are loading through a script tag, then there are some other js things you can do. Anyhow, I would take that true/false marker of the file being called/loaded and pass into s.contextData.fontLoaded = true/false, and then use processing rules to either set an event or pass into a prop so that it comes along with the initial page load.
Haven't done it before ... but seems like it could work and I am sure there are some other ideas as well.