Making internal rest requests non-blocking?

rest_do_request does not make a HTTP request to the REST API. rest_do_request handles a request object directly. WP_REST_Request and rest_do_request are for handling requests, not making them. This is why your attempt to make it non-blocking failed.

If you want to make a non-blocking request to the REST API, you have to make a HTTP request using wp_remote_post to the desired endpoint.