Use the existing system reference instead of Core::System::GetInstance(), and calculate the phase 2 scheduling delay from GetTicksPerSecond() instead of hardcoding 50000 ticks.