The Webform module just extends Drupal's Form API. Most of the elements available to a webform can be used in custom-built forms. For example, you can use the WebformMultiple element in any FAPI form.
This should be as easy as changing the wizard page's display settings, but you found a bug.
Issue #3106037: Allow a multi-step wizard page's display to be customized
Once you apply the patch, in the page element's 'Advanced' you can change how the page is displayed via HTML and text. You can use Twig to just render the child element.
We can look at Drupal\node\NodeTypeForm.php for an example.
We see the name and type fields defined like:
$form['name'] = array(
'#title' => t('Name'),
'#type' => 'textfield',
$form['type'] = array(
'#type' => 'machine_name',
'#machine_name' => array(
'exists' => [
It looks like the issue lies with the SMTP module. The release notes for 8.x-1.0-beta6 include a bug fix for:
#2993124 by jmuzz, qichanghai, Chris Matthews: Call to Undefined Method error _get_components when there is a BCC
Have your POST code inside a validate function, that runs last, after all other validation has passed.
Ex: $form['submit']['#validate'] = 'mymodule_post_to_api';
and use form_set_error('form', 'Failed to connect to API, try again later'); inside your catch.
For POST's errors, don't wait for someone to report. Programmatically make Drupal send yourself ...