It's one thing to factor in employee overhead -- whether it's "20% time" or vacation time or healthcare or just plain inefficiency -- into your pricing model. It's another thing entirely to take a client's contracted hours to pay for something they never asked for -- repeatedly, even when asked to stop. It's both a difference in degree and in expectations between paying for a monthly service vs paying for billable hours. If you're an agency and your dev went wild doing random stuff, you don't pass that on to the client (unless you're an unethical outfit like this one), you eat the costs and talk to the dev about better structuring their work.
There's also a pretty big difference between spending a LITTLE extra time on a side project vs not even finishing the actual project because your side project became the main focus. This is probably OK: "Hey, here's that finished logo you asked for. By the way, we had plenty of extra hours left, so I spent an hour on this new design mockup... doesn't it fit in much better with the new logo? What do you think, should we consider expanding the project scope to pursue this, or drop it if you don't like this direction?"
That's not what this agency did. They were more like "Ohhhhh yeah we still haven't had time to finish your logo. We need a few more months while we figure stuff out internally. Sorry, you're just not a high priority for us. But hey, one of our designers took half your hours and made this, check it out! Yeah, I know it's not what you wanted, but the logo person is busy. But check it out anyway! C'mon! By the way, if you paid us more, maybe we'd take you more seriously." What bullshit, lol... =/