Surely a simple solution is:-
(1) Airfields should (as largely at present) waive landing fees for genuine safety diversion.
(2) Pilots should (out of courtesy) always offer to pay a landing fee anyhow.
(3) Pilots should politely accept the decision of the airfield, and if (as I'm sure will usually happen) they don't want a landing fee, buy themselves some fuel or lunch.
Everybody's happy !
G