Print uses interrupt which may be messing with timing.
If the watchdog is for 10 ms then you could set a flag (byte) that loop() catches to update start time for an interval check.
Assuming that you don't need 4 microsecond precision to check a 10 millisecond timeout.......
This is less prone to being affected by Serial but does rely on loop() running as fast as the desired accuracy.
loop()
{
timeNow = millis();
if ( irqFlag ) // signal detected, even if it's more than once
{
irqFlag = 0;
timeStart = timeNow; // this will be as close to the signal event as loop is fast
}
else if ( timeNow - timeStart > 10UL ) // counting millis, not micros
{
// signal overdue -- set a flag or do something
}
....... other code
}