Prompt the user with request and return their textual response.
Implementations should block until the user has responded; in suspend contexts (the typical case) the operation should suspend rather than spin.