What I do not understand in the above process, the hashing of the current block surely only works if the data inside the block is complete and unchanging. If the data is changing the data hash would keep changing. But surely if a new transaction is made, new data is being added to the block and that data is causing the hash to change.
Miners won't necessarily "care" about any new transaction being made... Especially when there are more transactions in their mempool than can actually "fit" in a block. Generally, they'll only try and include it if the money to made from including it, is worth more than the "cost" of including it.
This is why you often need to pay $$$ in fees if you want "next block"... it makes your transaction more "attractive" to the miners and gives them an incentive to include it... whereas, if you pay the minimum 1 sat/vbyte... you end up in the big pile at the bottom of the mempool with the other 10,000+ transactions waiting for days