yeah, PULSE_LINE just triggers the line for an instance, with an NMI that's all you need, because it can't be masked by the CPU, so it always triggers it.
HOLD_LINE generally holds the line high until the CPU takes the interrupt (a bit of a hack but many drivers do this, and some hardware can auto-ack)
ASSERT_LINE holds the line until it gets cleared
CLEAR_LINE clears an asserted line
for the FBA cores, I'm not sure.
in MAME
space.device().execute().spin_until_time(attotime::from_usec(100));
will cause the 68k to do nothing for a while, so that everything else (the z80, ym etc. can run) when otherwise it would wait until the next timeslice, bit of a hack because simply running with a tighter sync overall would probably be as good but at performance cost.
not really sure what else to suggest, maybe there's a bug with your z80, or timers in the ym if you're 100% sure everything else is good.