Refactored to use (and silence) timeout with --kill-after