Есть проблема. Вот что означает отсрочка: The defer attribute tells the browser that it should go on working with the page, and load the script “in background”, then run the script when it loads. Scripts with defer never block the page. Scripts with defer always execute when the DOM is ready, but before DOMContentLoaded event.
Таким образом, этот скрипт будет запускаться сразу после загрузки DOM, но до наступления события window.onload. И приведенный ниже скрипт требует, чтобы DOM уже был загружен до того, как он сможет работать, поэтому вам нужно поместить его в window.onload ...
<script>
google.script.run.withSuccessHandler(myname => {
var elem = document.getElementById('myLink');
elem.href = myname;
}).getCardById();
</script>
Так что я не думаю, что вы получите вас Wi sh. Но возможно, что кто-то, кто знает Javascript лучше, чем я, может включить oop и спасти день.