Leighton,
I think the closest construct to double buffering is Parallel computing on multiple kernels. In fact, MMA already does double buffering -- computation is handled by a kernel and the front end which does the display and input/output is run on a separate kernel. You really could consider this "double buffering". Using the Parallel tools documented here you can control what gets done on each kernel and construct your simulation.
As to your second question. You can make a disappearing Hello World with:
PrintTemporary["Hello World"]; Pause[2];
You can even control the deletion of the temporary print programmatically with NotebookDelete -- see the examples in PrintTemporary and NotebookDelete. In fact, you can use the same concept to delete any cell in the Notebook. As to making text "fade" I suppose you should be able to change the opacity of a cell or a dynamic cell but I never tried it. There is an option for cells FontOpacity that you should be able to change. I hope this helps.
Regards,
Neil