The Twitch CLI might have track down/test the issue https://github.com/twitchdev/twitch-cli/blob/main/docs/event.md#verify-subscription.
Looks like this python code you may need to write some headers manually similar to, this post in Java
most likely a content-length header
Your curl -v output didn’t seen to spit back but in the way of response headers. So that looks like the issue.
But the TwtichCLI should shed some light on whats going on.