Have you tried DoEvents after the first one? See last sub...
I removed the first block of code because it was surplus to requirements. I've just tried putting DoEvents in the example above and it did the trick. I have DoEvents in the timer loop, so maybe it was that that fixed the problem rather than the delay per-se?