Update: fixed on my side too. The cause was Creative Assets (header / search result videos) that were still processing. In App Store Connect, the header showed a cloud icon instead of the video. Once I removed only the placements whose video was still processing, the app became available on the store about 1.5 hours later. The fully processed assets stayed.
If you're stuck on "Ready for Distribution", check the Header and Search Results tabs on each localization of the version. Any asset that never finished processing seems to block the release.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags: