1. Не здорово наследоваться от рабочего конструктора, лучше пустой временный создать:
Norkpalm_Error.prototype = (function () {
var Fake = function () {}; // фейковый конструктор
Fake.prototype = Error.prototype;
return (new Fake);
}());
2. Имя желательно задать, чтобы не видеть безликий "Error":
Norkpalm_Error.prototype.name = "Norkpalm_Error";
3. Из стека вырезать первую строку, потому что она будет указывать на строку с new Error:
this.stack = (new Error()).stack.replace(/^.*?\n/, "");
про все браузеры не знаю, правда, здесь