The em-dash is used when something breaks off. Permanently. Here is an example:
“She’s a lovely girl, but—”
“Shut up!” Ronnie interrupted him.
The em-dash may also be used when there is an interruption in the thought of the same speaker. Here is an example:
“She’s a lovely girl, but—and you may hate me for saying so—she cannot dance for the life of her.”
The em-dash is not used when a comment by the narrator is inserted in dialog. The closing and opening quotes are enough. Here is an example:
“She’s a lovely girl,” he said, “but she cannot dance for the life of her.”
As you know, the full stop at the end of a sentence is replaced by a comma when the narrator continues the dialog with a comment, as for example here:
“She’s a lovely girl,” he said.
where “She’s a lovely girl.”
becomes “She’s a lovely girl,”
. Narrator inserts are always set off with commas, unless the dialog is an exclamation or a question (where the "!" and "?" are kept, e.g. “Is she?” he asked.
). This will be important when we look at your example later, so remember it.
The em-dash is also not used when a speaker pauses. Use an ellipsis instead:
“She’s a lovely girl, but…she cannot dance for the life of her.”
When you want to insert a comment by the narrator during a pause by the speaker, as in your example, the inserted comment by the narrator is enough to make the reader perceive a pause. In the third example above, the "he said" will be perceived as a small pause by the reader, similar to, or maybe a tiny bit longer than, the one we make between clauses (signified by a comma or full stop). To give the effect of the speaker making a distinct and longer than usual pause, just insert a narrator comment wherever the speaker pauses, make the comment of the narrator long enough to give a clear impression of a pause, and, if you want to be extra sure, say that the speaker pauses. So either:
“She’s a lovely girl,” he took a puff of his cigarette, “but she cannot dance for the life of her.”
or
“She’s a lovely girl,” he paused and took a puff of his cigarette, “but she cannot dance for the life of her.”
Now, finally coming to your original example, we can put all of this together. First, a comment by the narrator has the effect of a pause; any other indication of a pause, such as an ellipsis, is unnecessary. Second, the inserted narrator comment is always set off with commas. So the correct way to punctuate your example is either:
“She’s a lovely girl, but,” he took a puff of his cigarette, “she cannot dance for the life of her.”
or
“She’s a lovely girl, but,” he paused and took a puff of his cigarette, “she cannot dance for the life of her.”
You can add ellipses, but that is not neccessary:
“She’s a lovely girl, but…,” he took a puff of his cigarette, “…she cannot dance for the life of her.”
The rules of punctuation have two limitations.
One, they only cover the most common cases. The rarer a certain construction is, the less likely it is that there will exist a rule that explains how you must punctuate it. That means that on the edges of common usage you'll have to extrapolate from the rules and punctuate your writing to make as much sense as you can.
Two, the rules of punctuation are binding only in schools and offices. In the real world, everyone can write however they like. There is no law to forbid you from using em dashes in whichever way you like, and your grandmother won't go to jail if she puts commas in the wrong places.
If you look at contemporary fiction, you can note many styles of punctuation that contradict all rules and style guides. And mostly, in those cases, these deviations from the rules work better than the rules. They convey a meaning that rule-based punctuation does not allow.
As the Russian proverb says: Если нельзя, но очень хочется, то можно. (If you mustn't, but really want to, you may.)