Add timeout support to runner