12 hrs is a pretty long reload time, how big is your resulting qvw compared to your system memory? Do you also use some more complex stuff like joins etc.?
I would suggest that you enable 'Generate Logfile' in document properties and then analyze, which table load lasts longest, also take the amount of records read into account. Then focus on the parts of your script that seem to have the most return on invest.
I agree that it is a good idea of putting your if() statements and formatting into the qvd creation scripts, if these additional transformations are of general type, like in your sample. Thus you could keep your qvd load optimized.
If you concatenate several qvd loads, please check out
And instead of the concatenated text based Keys, you could consider creating numerical keys using one of the autonumberhash or autonumber functions, this should at least speed up your user experience after the load.