на счет пункта 1:
================
я тоже столкнлуся с такой проблемой. Как я поянл это баг.
проблема появляется если appendChild находится в таблице.
У меня не было этого метода в таблице, но страница была в iframe, а iframe был в таблице.
Так что если до самого топ окна встретится таблица,то будет ошибка.
покопавшись немного я решил не использовать appendChild. Добавил просто div контейнер и потом getElementById("mydiv").innerHTML="anything"