I'm new on Emby coming from Plex. I'm having this same issue. My server is on an AMD Threadripper 1920x with 128gb of ram, direct SATAIII connections via a controller card to 6 12TB WD RED NAS drives. Plex has never had the kinds of problems that Emby is giving me when it comes to metadata gathering, media matching, etc. Even if I use the base defaults it goes quickly to 86.4% then just sticks there.
I really think you guys need to make a more comprehensive status system for library matching, thumbnail grabbing, subtitle grabbing, etc. In Plex, you're able to see what the state of the scan is using toast alerts in the bottom right. It shows which series is being processed, what element is being processed (imagery, thumbnails, etc). Additionally, you can still generally platy media files we even if they aren't matched yet, largely due to either my numerous threads (12-core, 24-threads) or due to hardware acceleration which I have enabled and connected to my Nvidia Quadro p2000.
I'm going to let my library sit for a few days and come back to it, but really right now, the processes running on my CPU are barely hammering it, and ram usage is low for the docker. Perhaps something is bugged? I'll get a log file to you in a few days to make sure I give the system a fair shake.
Note: I am using the Emby supplied Docker via Unraid -> Community Applications Plugin.