Custom Drupal breadcrumbs - how to disable the last item
To answer my own question:
The last link should point to route name '&lt;none&gt;' and that removes the href attribute from the item. So after all super easy.

// untested
foreach($prepared_data as $data) {
  $links[] = $is_last_link($data) 
     ? Link::createFromRoute($page_title, '&lt;none&gt;')
     : Link::fromTextAndUrl($page_title, Url::fromUserInput());
  }


Related:
It appears Drupal 8 core does not provide the current page in the breadcrumbs.
The contributed module Easy Breadcrumbs does this for D7. The D8 version is in still in sandbox.
Reference: Blog post.