It's not clear to me why Emacs hangs in what you describe, or what you mean by that.
But I think you're talking about accidentally defining a large region of text, and then killing or copying that, and that it is that killing or copying that you want to avoid.
If that's the case, then this may help:
wimpy-del.el. It's what I bind to
C-w, in place of
kill-region. It's a silly little thing I picked up somewhere eons ago, but I've become used to it and like it.
Here's the doc string:
Kill the text between
END, putting it in the kill ring.
(Interactively, uses the region.)
If the previous command was a completion, just remove the completion.
Else, if the region is >
wimpy-delete-size, you must confirm the kill.
Pretty simple, really. Mostly it just asks you to confirm killing if the region size is greater than the value of variable
(The part about previous command being a "completion" isn't very relevant nowadays. That refers to the use of standard Emacs library
completion.el, which is useful but which hardly anyone is even aware of anymore, even though it's still part of Emacs.)