Dinesh, you've rewritten the description to say that Errors "should never happen," but that's not a very helpful statement. Bad things "should never happen" to good people. But they do.
What was wrong with saying that it's something that "should only be thrown by the Java Virtual Machine or by classes belonging to technical libraries interacting directly with hardware."? I thought that was a great explanation.
Well I think we can safely drop the low-level classes part.
Even if you're dealing with hardware (let's say a cryptographic random number generator), there isn't any real good reason to throw an instance of Error. If there's an IO error, if it gets unplugged, all those things can happen and should be dealt with.
Errors from the JVM prevents your code from being executed - that's a totally different situation that you can't really deal with, because your code is not executed.
Adding a low level exception is opening the doors to exceptions to this rule, and I don't think it is a good idea.
But you're right, I prefer your version except for the 'low-level' part, so I suggest to just remove that and we'll be done.