Final followup - I retested this today using 1.52-beta4 and the Teensy 4.0 I2S slave problem is definitely fixed.
The fix came from this post which was committed on github weeks ago.
I ran the HardwareTesting > WM8731MikroSine example. The sine wave sounds correct on Teensy 4.0 and exactly the same as with Teensy 3.6.
I also edited the connections to route the input to output, then listened to actual music played through.
Code:
//AudioConnection patchCord1(waveform1, 0, i2sslave2, 0);
//AudioConnection patchCord2(waveform1, 0, i2sslave2, 1);
AudioConnection patchCord1(i2sslave1, 0, i2sslave2, 0);
AudioConnection patchCord2(i2sslave1, 1, i2sslave2, 1);
Both Teensy 4.0 and Teensy 3.6 are passing good quality sound through. I'm taking this issue off my list, since it seems to be fully resolved.

However, the MikroE-506 input seems to lack low frequency response. I'm pretty sure this is just the MikroE-506 hardware meant for a microphone, but it is a bit "tinty" to listen without much bass response.
Or this lack of bass response might be something about how we're configuring the M8731 chip??