Use the internal path of the term:
Route matching operates only on internal (unaliased) paths and route #2 having more fixed parts wins.
The easiest way to set this up is through the Content: Has taxonomy term ID Contextual filter.
In Content Views listing your nodes add that Contextual filter and set it up:
When the filter value is NOT available
Provide default value
Taxonomy term ID from URL
Load default filter from node page, that's good for related taxonomy blocks
Filter to items that ...
This is intentional functionality for some workflows (for long lists of results).
If you wanted to get rid of the button, you could hook_form_alter it away. Form IDs and array structure are dynamic based on your view so you'll have to adjust accordingly based on the view & action button to remove (this can be found in the Views UI, if not known).
Views fields have an option to overwrite the output of the field. You can use this to add any html you want, using twig. You'll have all fields rendered before your field available as twig variables.
In your case, since you know that you're getting an image url from your external database, you can rewrite the output of your field using twig. For example: