Make restart() inherit timeout and max_retries from run()
When restart() is called without explicit timeout/max_retries parameters, it now inherits the values used in the last run() call. This ensures consistent behavior between initial startup and restart. Previously, restart() defaulted to timeout=30s and max_retries=1, while run() might have been called with different values (e.g., timeout=60s, max_retries=3). This caused flaky test failures when restart() was used after time jumps that required longer processing time.