What impact does using backup preference on Availability Groups have?
No, the availability group does not do anything to control where backups occur.  The backup preference settings on an availability group are there so that the backup software can reference it to determine where to run the backup.  If the backup software in use doesn't have any code to reference these settings, they will have no impact on that backup software and it will just run the backups on the server it connects to.

Most backup software that supports availability groups will reference the backup preference configuration and take backups accordingly.  Maintenance Plan backups will adhere to the backup preference configured on the availability group.

One option I would recommend for the copy-only backup setup--create your SQL Agent job to run a copy-only backup.  The first step in the job would be to check if the server is the primary, and if so, end the job.  If it is not the primary, then run the copy-only backup.

The first step of the job can use the fn_hadr_is_primary_replica function to determine if the server is the primary of a given database:

sys.fn_hadr_is_primary_replica ( 'dbname' )


See sys.fn_hadr_is_primary_replica (Transact-SQL).