createPushStream() accepts mulaw format(maybe not when you write this question).
Made some changes to your code and it's working fine. These are the updates
const azurePusher = sdk.AudioInputStream.createPushStream(sdk.AudioStreamFormat.getWaveFormat(8000, 16, 1, 2));
And passed the stream directly after decode
azurePusher.write(Buffer.from(msg.media.payload, "base64"));