Excellent, not that I had doubts.
From quick look I think you basically nailed it.
While you were improving the code, I was playing with the former.
I was aware of the anchor issue, and that has been a barrier I could not go over to even try, I had put it so that the (your) original work was clear.
Regarding duplicate link text, how about just removing the text? i.e.
<div class="fz-intro-link"> <a class="link-01 fz-nav-link fz-first-link" href="#">
Link 1 </a> </div>
First version (post #3)
The triggering you decided is just fine, I notice a kind of "you go first, no you go first" situation when you have your cursor over the "link 3", and go over to lower links ("link 4" and "link 5"), not a "standard" user behaviour, and not an issue, just thought to mention it.
An issue is if I add a second dropdown, the higher dropdown would go behind the lower one please see:
ttri dot biz/fz_test/04/
Second version (post #4)
It seems that the higher (just link 2), and the lower ones (link 4 and 5) would show the dropdown list (sub-menu), when hovering over where the sub-menu is supposed to be hidden (half right of the block, you can see it both at the codepen sample, and here:
ttri dot biz/fz_test/05/