I don’t see anything obviously wrong with your code.
I’m assuming you are actually setting this up for a “real” broadcaster_id and thus with a “real” oAuth token.
The only other thing that is missing is the fact that an oAuth token is only valid for four hours so the lease time is overridden from 10 days, in your case, to four hours.
You can use the Webhook subscription status API to check for this and active webhooks