◆ ドキュメントに adopt されたタイミング
◆ template タグの中だとリスナが未設定
  ◆ body などに append した時に設定される
  ◆ adoptNode や importNode しても設定される
  ◆ ドキュメントが変わらない cloneNode しても設定されない

CustomElements がアップグレードされるのはドキュメントに adopt されたときでしたが on 属性のリスナが設定されるのも同じタイミングでした
CustomElements の方はここの 「cloneNode と importNode」のところ参照です

const tpl = document.createElement("template")
tpl.innerHTML = `<div onclick="alert(1)"></div>`
console.log(tpl.content.firstElementChild.onclick)
console.log(tpl.content.cloneNode(true).firstElementChild.onclick)
console.log(document.importNode(tpl.content, true).firstElementChild.onclick)
null
null
ƒ onclick(event) {
alert(1)
}

異なるドキュメント上の template タグの content の時点では null です
ドキュメントが変わらない cloneNode の場合も null です
ドキュメントに adopt される importNode を使ってクローンすると onclick プロパティで onclick 属性で設定した関数が取得できます


ちなみにリスナ以外のプロパティと連動する属性は adopt 前でも設定されています

const tpl = document.createElement("template")
tpl.innerHTML = `<div hidden id="id"></div>`

let tmp = tpl.content.firstElementChild
console.log(tmp.hidden, tmp.id)

tmp = tpl.content.cloneNode(true).firstElementChild
console.log(tmp.hidden, tmp.id)

tmp = document.importNode(tpl.content, true).firstElementChild
console.log(tmp.hidden, tmp.id)
true "id"
true "id"
true "id"