2) Have a constant block reward for mining so that miners do not need to supplement their earnings by charging transaction fees to bitcoin users.
I think you are missing the point.
It is possible to pay higher/lower fees based on the user hurry.
If I really need to get a confirmation in the next block, it is important for me to pay for a high priority transaction.
On the other hand, if I can wait for a week, it is also important to have an option to send for lower fees.
You are paying for what you get. And as pooya87 pointed out, miners do not need transactions fees to make money ( at least not for now). Block subsidy (6.25) is more than enough to pay for their expenses.
Further, even if you do consider fees in terms of USD, then even if the USD value is static then your fee can vary greatly, as you have pointed out. The fees that I pay are affected far more by the type of transaction I am making and when I am making it than by the price of bitcoin in USD. If I use segwit instead of legacy and smartly choose the time to consolidate my inputs, then I can save >99% on fees. Even if the bitcoin price swings by several thousand dollars, then my fee in terms of USD will only change by a few percent.
I agree with this. I have pointed out many times that fiat currencies also have a high volatility. USD and EUR are not so volatile as other currencies. For example, BRL is very volatile.
Take a look at USD BRL charts over the last 5 years: 63% variation
Since the pandemia started (march 2020) BRL lost 21% value against USD.
This is a very high volatility, and people live here with this volatility. Just as bitcoin users live and make transactions with BTC volatility.
I think that in long term, there might be a possibility to create sub satoshi/vbyte transactions, as bitcoin prices gets higher...