You said no. It was clear. You had decided it beforehand and it came out the way you meant it.
Then you kept talking.
An explanation. A reason. Something about how it was not personal, how normally you would, how it is just this once. By the end of the paragraph, the no had become a maybe, and you were the one who moved it.
A boundary holds on the decision, not on the explanation.
An explanation is an invitation to negotiate. Every reason you give is a door, and the other person walks through whichever one is open. You said no because of timing; they can fix the timing. You said no because of the cost; they can lower the cost. The boundary had a decision behind it right up until the second sentence turned it into a proposal.
The urge to explain is the nervous system again. A bare no feels unsafe, so the system adds padding. The padding is for you. The other person receives it as an opening.
The structural alternative has two parts, and the first happens before the conversation.
Decide whether this is a no. Not a "probably not". A no. If it is not a no yet, do not say no; say you will answer by a day, and mean it.
If it is a no, it is one sentence. The explanation exists. Write it down for yourself, so it has somewhere to go. Do not say it. If they ask why, answer once, briefly, in the same words, and stop. The second time they ask, repeat the no. Repetition can feel rude. It is only the boundary staying where you put it.
Next week: the version of you that keeps choosing, even though you have moved on.