hmm this is a fun problem. I have been trying to find a solution to your problem.
So far i noticed that it is definitly a bug in the AE templates.
1) If you make a copy tab it does show up the correct name at all times.
2) if you create a normal object without the extra attributes and select that then select your object with the attributes it does show up with the correct name. However if you then select another object with the same extra attributes then it switched back to the "My Attribute Test" name again.
3) so its definitly a problem withn the automatic AE update scripts. Still trying to pin it down though.
4) from what i can see it is calling several commands depending on what you are selecting. (maya does this in order to make the updating of the AE fast, but in this case its also causing a problem :P)
5) AEreplaceCompound
autoUpdateAttrEd
scInfluenceReplace
6) my guesss is that something goes wrong with the naming in the commands listed above. especially the scInfluenceReplace is akward.
7) ill keep at it and if I find something I'll let you know.
update:
well it seems that the AEreplaceFloat comand is the problem. Trying to fix it. 
update 2:
catch( $label = editorTemplate -queryLabel $buffer[0] $buffer[1] );
just for info this is the contents of the buffer:
pCube4
MyAttrTest
MyChild2
this seems to be the problem. it is querying the nice name of the compound object instead of the attribute.
however if i change the $buffer[1] into [2] i get a none value.
So my gues is that there is something wrong with the editorTemplate -queryLabel function.
Back to testing ^^
update 3:
catch( $label = editorTemplate -queryLabel $buffer[0] $buffer[2] );
well replacing the $buffer[1] with $buffer[2] did the trick. Since its now not finding a name it just uses the old name.
So yeah its definitly a problem within the Maya2011\scripts\AETemplates\AEreplaceFloat.mel file. You can fix this for yourself manually but if you distribute your script then everyone still has that problem.
You could also overwrite the global function but that is considered blasphemey ^^.
Hope that it helps.
update 4:
nope that dint help did it 
Just found out that its keeping the given name but its also not updating any new names. So if i make another object with a different bad name then its still using the old bad name...
The search continues
update 5:
catch( $label = attributeName $plugName );
wel that does the trick. But this will definitly give you a problem in time. Since its now only looking at nice names and not at nice names AND labels. but it does fix the problem.
Joojaa should you read this, lemme know your thoughts on this fix.
Hope it helps.