Jekyll: How to get markdown parsing inside blocks using Kramdown?

You can add a markdown="1" attribute to your <div>, if I read well the HTML Blocks part of the Kramdown doc:

If an HTML tag has an attribute markdown="1", then the default mechanism for parsing syntax in this tag is used.

# Headline1
------------

<div markdown="1">
  # Headline2
  ------------
</div>

Try to use an inner declaration, and remove indentation (unless you want it to be treated as code):

# Headline1
------------

{::options parse_block_html="true" /}
<div>
# Headline2
------------
</div>