Как вариант, если не поможет
pointer-events: none;
на внутренний < span >, сделать у ссылки псевдоэлемент и дать ему стили
a::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
и самой ссылке
position: relative;
Тогда ссылка точно всегда будет поверх кнопки на всю ширину-высоту.
P.S. То, что на втором скрине, по идее не совсем корректно, в ссылку нельзя такие конструкции вкладывать.