Переполнение стека, зачастую, обусловлено присутствием рекурсии в скрипте.
Но, в скрипте я чёт не увидел рекурсии.
Тем не менее используется метод, которого тупо нет в мета-таблице из-за чего оно, вероятно, по кд обращается к __index, в результате чего и возникла эта рекурсия, но это не точно...