Что то я смысл этого цикла непонял:
For X:Int = 0 Until W
For Y:Int = 0 Until Length
WritePixel NewPixmap, X, Y, (ReadPixel(Colors, X, Y) & $FFFFFF)
Next
Next
А именно чем полученый пиксмап отличается от копируемого? Для тупого копирования есть встроеный метод.
По вопросу: убери из функции создания WaitKey нахрен он там ненужен.
И компиль как GUI приложение, для консольных WaitKey неработает ниразу, т.к. нет своего окна.