Add an outer timeout

This is to workaround the flaky signal.alarm() on drone.io.