Hello Matt,
Although there is no native connector to Asana in Workfront, this should not be a problem. In general Workfront can almost talk to any 3rd party tool which has an API using the HTTP modules. Asana has an API as well (https://developers.asana.com/reference/createtask).
Your Good approach should be possible without great effort. You could work with a Watch Event, e.g. if a new task is created in WF, the scenario starts and uses any fields from the WF task to create a task in Asana. Also the Better way will not be a problem, as far as you are considering when a create and when an update call should be made to the Asana API.
I do not have any experience with the Asana API, but concerning the Best way you just need to clarify what you are expecting related to the timings of the "sync".
If you need to have an almost realtime sync, you need to find out, if the API of Asana is able to call a webhook as soon as a status change is made in Asana (possibly here). If yes, you could use the webhook module of Fusion as the starting point for your scenario.
If the trigger cannot come from asana, you could use a scheduled Fusion scenario, which calls the Asana API in regular intervals to check for changes.
You see, there are different ways to achieve your plan, just depending on different parameters on both sides.
Regards
Lars