I figured that out from the other thread 
I added this little helper to my copy of MySensors.cpp:
    void MySensor::wait(unsigned long ms) {
            bool slept_enough = false;
            unsigned long start = millis();
            unsigned long now;
            // Let serial prints finish (debug, log etc)
            Serial.flush();
            while (!slept_enough) {
                    MySensor::process();
                    now = millis();
                    if (now - start > ms) {
                            slept_enough = true;
                    }
            }
    }
In theory it'll handle the millis() rollover, but I haven't verified yet.
I'm now able to send messages between nodes with and without being in repeater mode.  I have yet to test repeater mode, as i haven't convinced a sensor it can't see the gw yet 