The button is not showing up because your email is not signed with DKIM/SPF. Without signature there's no way to prove that the sender is actually yourself and prevent malicious senders from spoofing your email address, so the markup is being ignored. Make sure you add DKIM signing to your code and everything will work as intended.
Also note that you have an extra comma after the handler url and that invalidates your markup. You can use the Schema Validator tool to check your markup:
https://developers.google.com/gmail/schemas/testing-your-schema
Finally, to answer your question about the correct location for the markup, anywhere inside either the <head>
or the <body>
works fine.