> 2) What is the purpose of the RETURN PUSHDATA(36)(...), actually, in
> theory, this output can never be consumed by anyone, because there is
> no OP_CHECKSIG or similar OP at the end to return true in the Script
> stack.


From my understanding, this is mandatory in SegWit enabled blocks.

The second script (starting with ``OP_RETURN``) provides the merkleroot of the witness tree. IIRC it was created this way to prevent a hard fork. Adding an extra field into the block header would defiantly require a hard fork, so the best alternative was to place the data somewhere already available in all current blocks. Since the ``OP_RETURN`` script will never be a valid output, it will simply be ignored.

Reference and more information: [BIP141 Commitment structure][2] and [a similar question][1]


  [1]: https://bitcoin.stackexchange.com/a/74183/85140
  [2]: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure