How about freezing the difficulty once the block rewards have finished. This could lead to the block generation time being linked to transaction volumes and fee rewards. This could also help with scaling.
you mean "remove" difficulty entirely and that would require a ton of fundamental changes to the protocol to achieve that and somehow link block generation time with transaction volume. otherwise if you "freeze" the difficulty number to some fixed amount you are practically assuming hashrate is never going to change again and if it does, everything would be ruined!