Your scenario is not well suited to Journey Builder. In order to send the Double Opt-In message from Journey Builder, you'd have to opt the contact into a keyword. What you're trying to do is eminently achievable using other tools at your disposal within Marketing Cloud.
You have a variety of templates to choose from in MobileConnect. The one you would be interested in is the "Mobile Opt-In" Template. The normal workflow is you provide a call to action somewhere, like "To receive updates, text OPTIN to ...", the consumer's mobile number is opted in to your keyword and you say "Thanks for opting in" in your Confirmation Message.
This is the single optin workflow. If you read the documentation on the Mobile Opt-In template, there are three flavours workflow:
- Single Opt-in - Requires users to text once to opt in.
- Double Opt-in - Requires users to text twice to confirm opt-in.
- Double Opt-in with Age Confirmation - Requires users to text in their age or date of birth after texting to opt in. If the user's age is above the minimum, MobileConnect accepts the opt-in.
For the Double Opt-In workflow (2), you'd normally expect you consumer to send an SMS to initiate the workflow. Your sign up page could emulate this part of the process on behalf of the subscriber using the QueueMO REST endpoint where you basically do the texting of "OPTIN", or whatever keyword, for them.
The last part of your use case is to inject into Journey Builder once the contact's successfully double opted in. For that, use an SSJS Script in the Double Opt-In's Confirmation Message. There are plenty of examples of this on StackExchange.