Похоже у тебя ошибка в логике работы. Ты создаёшь блок My_block_1 вставляя в текущий чертеж файл My_block_1.dwg. Но в My_block_1.dwg есть блок My_block_1, так что переопределение будет рекурсивным. Думаю что вставлять нужно с другим именем. И мне совсем непонятно зачем нужно хранить по одному блоку в файле, если можно обойтись без блоков, а всё что нужно находится непосредственно в пространстве модели.
Вот в этом случае как раз (vl-cmdf "_insert" (strcat block_filename "=" block_path_filename )) переопределит блок block_filename. Ну а после этого _ATTSYNC. Впрочем этого может быть недостаточно для динамических блоков и придётся найти все вставки блока block_filename и переопределить их (получить все динамические параметры, удалить вставку, вставить новый блок и установить сохраненные динамические параметры).