I’m curious as to how the segwit update managed to propagate slowly and avoid being a hard hork without securing 50% of the hashing power.
I did some searching, and found a link answering your question. I’ve quoted the main part of the answer below:
Witnesses are only included when the requester asks for them, which old clients don’t do. For them, new clients remove the witnesses before relay. Exactly because the witness of a transaction does not contribute to its txid, it is in fact possible to remove them before relay, without invalidating them. That is what makes it a soft fork.