I've thought a bit more about the on-trash penalty. As I see it, there are at least two ways it might work.
1a) On a junk card. You already want to trash junk cards, so you might be willing to suffer the on-trash penalty. Imagine a Ruined Fortress, which gains a Ruins to your hand when trashed. This would usually be a penalty, and would effectively slow the rate at which the junk may be trashed away. You may object that this penalty does nothing when trashing isn't available, but in those cases the junk is permanent anyhow (edge case: ambassador, island).
1b) Pretty much the same as 1a, but rather than it being a junk card which is dealt out by an attack or penalty, it could be a junky card which has a powerful on-buy/on-gain/overpay effect.
2) An on-trash penalty on a trashing attack. Imagine a card like Swindler, Saboteur, or Knights with an on-trash penalty. Unfortunately, such a card would need to be pretty strong to make up for the risk. But then I feel like the card would become quite swingy. I mean, losing a good card is already a penalty, right?
3) A card which can be trashed if a certain condition is reached. Knights are an example, since an attacking Knight is trashed if it hits an opposing Knight. You could also imagine a Duration card which is trashed if an opponent buys a Victory card. But again, just the card being trashed would probably be enough of a penalty.
4) On a one-shot. Seems reasonable at first, but since the card is trashed anyhow, you could just make the penalty a part of the on-play effect.