I guess the problem with upgrade availability may be due to the policy of BA over-selling in lower classes, especially in WT. So BA needs to hold seats back in the event of having to fit everyone on-board holding a paid ticket. However, I know that this is not always the case, since there have been times when I have been unable to upgrade using Avios from WT+ to Club, even when there have been seats in J empty on the flight. Similarly I have been unable to book redemptions using Avios in J even though I can see from ExpertFlyer that there is plenty of availability in all Club fare buckets.
For upgrades, UA operate a more equitable system, which is fully automated. You are wait-listed for upgrade using miles on a space available basis, subject to various criteria including FF status. This clears either a day or so in advance (which you will see reflected in your on-line booking) or at the gate, where computer screens show your progress through the priority list. Why can’t BA operate such a system?