This method works perfectly when the model is run within the Edit mode of ModelBuilder. However, when the model is saved and run as a tool, the layer is created, with the correct name, but the layer is not added to the map.
This is how all tools (including script tools) work. If the output is not a parameter, it will not be added to the map.
You may be able to get around this in 10.0 by using arcpy.mapping in a Calculate Value tool code block to add the layer to the current data frame.
My sample model includes a parameter output. In the one that has a hard-coded name, the output is added to the map. In the one that includes a variable in the output name, the output is not added to the map. I think this is an ESRI bug.
Your suggestion gave me a workaround for this issue for the time being. Thanks!
I have been facing the same issue for couple of years , and I have worked this out. I have searched all the links you posted her. Finally I have a working solution. This solution is similar to Curtis Price suggested. Please try this Toolbox. This solves one more issue. You can hide the output parameter from user by using a wrapper model ( here Use Test Model Main).
Hope this helps !