You have a couple of options here.
Represent each non-CRM user as a contact record. Then add a new contact field to the task which CRM users can populate with the non-CRM contact. Only problem is that you can't use the assign and security model functionality but it doesn't sound like you need it. Also it means the 'my task' view for a CRM use will show the tasks being worked on by a non-CRM contact.
Represent each non-CRM user as a team. Give each team a security role. Then you use assign. Also when you assign then the record will disappear from the 'my task' view of the user.
Create a non-interactive user, but you are stuck with a limit of 5 for CRM Online.
Non-interactive users are often used when writing service-to-service code because they do not use up a license. Microsoft Dynamics CRM Online allows for five free non-interactive users.
- Not sure about this last one. You could try creating the user, giving them a security role, but not a license, e.g. so the user record is disabled. Then apparently you can assign them records still.
Assigning Records to Inactive Users in Dynamics CRM
So long as the inactive user still maintains a security role, even though it is inactive, you can programmatically or via the UI assign records to that inactive user. This means that you can maintain the historical data of who owns a particular record even though they may no longer be with the company, and save yourself some extraneous licenses as well.