The umpire should have blown the whistle earlier, and if Neale had made any effort to remain upright he would have been fine. Not Ward's fault at all.
I think Duncan gets off for the reasons you stated. Similar to brayshaw, and Tom Lynch two weeks ago.