I seem to be answering my own questions a lot recently ;)
Did a bit of digging and figured out that the hidden fields have their own array instead of going inside the 'fields' section. Here is the basic form layout, hope it's useful to others:
$qa_content['form']=array(
'tags' => 'METHOD="POST" ACTION="'.qa_self_html().'"',
'style' => 'wide',
'fields' => array(
// visible fields here
),
'hidden' => array(
'id' => '0',
),
'buttons' => array(
// buttons
),
);