Due to the FME-7 mapper handling being very CPU-intensive during the sample interrupts, there's not enough time during VBlank to copy 64 bytes to nametable RAM. As such, the PPU stripe routine ends up running into active screen time and corrupting nametable RAM as well as the vertical scroll position.
Setting the amount of bytes to copy per frame to 32 does make the issue disappear. The problem is I didn't find a way to define the amount of bytes to copy to 32 at link time, since the MAPPER_FME7 declaration in the linker config seems kinda useless.