The documentation you linked to shows how you can provide a completely different experience for users that are invited versus users that are just resetting their passwords.
In theory, if you are okay with using the same reset password page then you can consider creating the user with the email already set to verified, prevent any built-in emails from being sent, request a password change ticket to be generated through the Management API and send your custom invitation email with a link to the password change ticket. Given you will be creating the user with a random password the only way for them to access the account is to use the change password ticket delivered to their email which proves ownership of the email in question.