How to write custom access for a route which redirects the user to another route if a condition is true
The issue if you click/visit example.route it automatically redirects to example.route.two is caused by the access method not only called when you visit example.route.one, but also on other pages with links pointing to example.route.one, for example in a menu.
So use access methods only for calculating access results. If this then results in a 403 you can catch it in an event subscriber and set a redirect response instead of the default 403 message.
See Dynamically change the &quot;access denied page&quot; title and body.