There's a timeout option for async/timeout calls in core now.