Хорошо, мне удалось взломать это, поэтому я пишу на случай, если кто-то еще наткнется на это.
Причина, по которой оператор не был вызван, заключалась в том, что моя реализация находилась в библиотеке, а не в проекте, который вызывал операторы. На самом деле, поскольку технически вам нужно только включить реализацию операторов, они уже определены глобально, я только определил реализацию операторов в .cpp в моей библиотеке (это был неправильный шаг). Код, очевидно, включал только заголовочные файлы из библиотеки и не имел видимости для реализаций. Более того, Visual Studio, похоже, связал newaop.cpp и delete2.cpp с моим приложением. Эти два файла содержат реализации для оператора new [] и оператора delete [] (бот не для обычного new / delete!). Это, скорее всего, причина, по которой компилятор увидел эти две реализации и выбрал их вместо моей, которая находилась в файле .cpp в библиотеке.
Решением этой проблемы было перенести реализацию моих перегруженных операторов в файл заголовка в библиотеке, который непосредственно включен из моего кода.