Creating a staged user with an API call

Just this post: Creating a staged user with an API call

This is totally doable. Have a look at How to reverse engineer the Discourse API and you will see which endpoint the discourse-assign plugin calls.

Nope does not need to be with the system user. You just need a user with enough trust level to create and assign topics.