Unfortunately, all that is doing is creating a new project parameter from a shared parameter (i.e., ExternalDefinition). If it is an ExternalDefinition then it is a shared parameter.
There is still no way to create a project parameter from an Internal Definition.
If you think about it for a bit, you probably don't ever want to create a project parameter (non-shared) programmatically anyway. What happens when you do so, is that you could wind up in a situation (like I did a few years ago when I was less wise) and wound up with 5 "myParameter"s on each element... The reason being that Revit doesn't care a wink about the name of the parameter, it only knows about the Guid of the parameter (open your shared param file in a text editor and see). So when you're adding parameters to a file that you intend to work with, using the shared parameters method is vastly superior. You will need to either add the definitons to a shared param file "manually" (through the Revit UI) or programatiicaly create the shared params file once (if you have many that can be programmed). Then simply send that file along with your installer, path to it just before you need it and then add params from that file. Then you'll know that you always have the right ones and you can even use their guid to make sure you are always reading and writing to the correct one.
If you were able to use the project internal parameters workflow, you would open yourself to multiple params of the same name, and other issues. From the user standpoint, they have no idea if a project parameter was created "internally" or from an external definition, it will look and work exactly the same (with exception of when you try to modify the parameter).
I would strongly encourage you to consider the shared params only workflow for adding parameters to a revit file (regardless of how many categories you need to associate them with). You can always switch to your shared params file before adding and then switch back to the previous after you're done adding params.
Remember that the "current shared params" file is just a "phone book" which associates a guid with a name and type, nothing more. So once you're done adding the definition to the file, switching back to the user's shared params file, will have no adverse effect. (it's ONLY needed when you're actively adding a project or family param from the shared definition)
Does that clear up the issue at all?