So I had a chat with Arkman/ and I found a solution for your issue. Haven’t read the thread at all, but he told me that this is a thread where my solution would fit. So forgive me if that is not the answer you are looking for.
The delay is important since the material assign script (where ever that is located) is firing after the beginplay is firing. So without delay it would not work.