How long to hold - a difficult one. Assuming you have the fuel, then it will be cheaper to hold than divert, although I doubt if anyone can hold for 2 hours inbound to LHR!
When you have an EAT (Expected Approach Time) that is later than your fuel allows, then hanging on is basically in the hope than it comes forward because of a weather improvement or loads of others diverting. As a strategy this may work but then again may not. In these circumstances, an early decision to divert can often result in you getting to destination quicker after a splash-and-dash.