Нашел решение, кому интересно посмотрите.
Видимо изображение не успевает загрузиться, при формиравнии base64 из канваса, поэтому надо выждать паузу, прежде, чем формировать base64.
Конкретно сделал так:
new Promise(resolve => {
setTimeout(() => {
const base64 = canvas.toDataURL('image/png')
resolve(base64)
}, 10)
})