Mis disculpas. Dejo esto aquí por si otros encuentran el mismo problema.
Al depurar la solicitud HTTP real enviada, noté que python estaba enviando los datos PUT como "post=raw&post=edit_reason"… reemplacé data=data con json=data en la llamada requests.put() y listo.