Cannot get form_state storage or protected form values to work
This:
'#submit' =&gt; [$this, 'addAnotherImageSubmit'],

Should be this:
'#submit' =&gt; [[$this, 'addAnotherImageSubmit']],

Submit handlers are only called for #type submit and not #type button, so you'll need to change the type.
You will also need to use $form_state-&gt;set(), rather than a property on the class. This is because the form class is re-instantiated for each iteration (build, validate, submit), and therefore values stored in the properties of the form class will not persist. $form_state-&gt;set() persists values, as these are stored in the database, and are repopulated for each instance of the form class (as long as you call $form_state-&gt;setRebuild() as you have done).