WIP: Add timeouts and smarter availability

This will be squashed