I've posted that answer something like 8 years ago, so may not remember the details

Also, there is probably no article or anything from my side, just that.
But that code alone may actually be good enough, you just add a form with a list and add a handler for the list's "ItemDrag" event, and that should be it.
I've just done that actually, as a blank-new project:
https://github.com/nbelyh/SampleVisioDragDropAddinConsidering your steps, I think the code needs to be "in the loop" before the shape lands on the page, then it may be already too late.
For one thing, when the user "drags", Visio shows a "preview" of what the result would be if he dropped (a "live preview").
So, you may need to "configure" the shape not when user already "drops" but when he just starts dragging.
You can adjust some properties on drop of course, but replacing the whole shape on drop would probably be a bad idea.
Dropping a shape that is NOT coming from some sort of a Visio stencil (like in the sample above - keep in mind it can be your custom stencil and your custom shape from the stencil as well),
but is built on the fly by code out of thin air in memory, would be much harder to implement, as far as I see.