Be careful if you are burning too rich, as washing all the
oil off the cylinders is a bad thing. With closed loop control turned off, what ever the ECU is commanding the lambda to be, you must get that same lambda reading with the O2 sensor. Until you achieve this, you will chase your tail trying to get the fuel right.
To get the timing right, the ECU has to have some understanding of engine load. What ever strategy is used, somehow it needs to estimate how much air is in the cylinder relative to how much air the cylinder displaces. Mass Flow is the most accurate as it is directly measured (but it is only as accurate as the MAF sensor).
If it thinks the load is less than it actually is, it will put in too much timing. If it thinks the load is greater than it actually is, it pull too much timing out. Once you have an accurate load calculation working, you can tune what the engine needs. If you do not have a good load calculation, you will fail to tune the timing.
To get the fuel right you have to know how much air is going in. So accurate air flow is critical to both fuel and timing. Some people do not know how much fuel the injectors are putting out so they just diddle with the air flow to get the fuel correct. When they do this, they screw up the load calculation for the timing.
Good luck