Наверное просто insert_recordset еще до конца не выверен MS

. В случае использования временной таблицы использование insert_recordset теряет смысл и пожно просто сделать цикл по таблице источнику со вставкой во временную. Временная таблица это не временная таблица SQL, о ней сам SQL даже не знает. Поэтому сделать полноценный запрос типа insert into... select на стороне SQL система все равно не сможет. А значит у себя в ядре делает все тет же цикл.
Так что почему падает не знаю, но менять на цикл можно смело без потери производительности.