Sorry if I still do not understand transaction fees but it appears that transaction fees vary all the time - eg in this one I was charged 1.12 ADA - just a simple transfer of 4 ADA and 1.12 ADA charged as fees ?
For that one it is easy: There was not enough left for the minimal output, so it had to take everything as fee.
Each output has to be at least 0.999978 ADA. That is the absolute minimum. If you have less left after the sent amount and the fee, it raises the fee. You could have also raised the output.