OK, I've done some more digging and have a better idea whats going on. The Chromecast support isn't broken as such, it just appears to not be obeying the settings in AVSub.
This is the setup that worked in v19:
Subsonic Primary Server:
https://<externally resolvable dns name>
Chromecast Server:
http://<internal IP address>
As I use AVSub/Subsonic away from home the Primary server was SSL secured with a self signed certificate. Chromecast doesn't work with self signed certificates so I had AVSub set up to cast with a plain HTTP address inside my own network.
In v20 this stopped working. It looks like it was trying to cast with the Primary server details rather than the Chromecast details. So I changed my server setup to have a purchased, valid SSL certificate. I then removed the Chromecast settings in AVSub as the primary would work in all usage scenarios.
Now Chromecast support works in v20. So it looks like the bug in v20 is that it ignores the Chromecast specific server settings and uses the Primary server settings instead.
An issue that affected me, but probably wouldn't be noticeable to most people.