Ran a new test scenario where I created a DC, then created a web server, blew it away, then re-created the web server. The purpose of the test was to see how the installers would handle information existing in AD, like the OU for CRM.
This revealed yet another silly issue in retrieving details of existing OU's, where I had the syntax wrong. I should read exception details more closely :)
Apologies also, I've just now started labelling the solution according to these "snapshots".
Sorry for the noise this last couple of days, I think stability is within reach now!