Cool, thanks. One thing I did try was to set an option in the init_queries function, e.g. qa_opt('myplugin_active', 1), then I would just check the option before running queries. However, this sets the option regardless (the init_queries function is obviously executed in order to check that initialisation is required).
Perhaps instead of only returning a query from the function, we could include an option to set, for example:
return array(
'query' => 'CREATE TABLE ...',
'option' => array('myplugin_active', 1),
);