No SB16 card intentionally returns 5.x.
The code looks fine at a cursory glance, only the timeout of 65535 loops could be a problem (which would lead to the carry bit set to indicate an error and then later to also take the fallback path). But 65535 in instructions also take quite some time which should be enough for the SB DSP to return its version and set the ready-bit.
In emulation the emulated soundcard would return its version instantly and set the ready-bit, so maybe it actually is that part of the code (0x2261-0x2269) that is to blame.
Btw, the DMA-controller annotation (I assume generated by IDA?) is wrong, it's just a simple IN of the read-buffer status port of the soundcard, no DMA involved.