Me ha picado la curiosidad y he estado leyendo un poco sobre esas funciones Java que has utilizado.
https://developer.android.com/refere...a/AudioManager
Por lo que veo con "setWiredHeadsetOn" y "setSpeakerphoneOn" enciendes/apagas los auriculares por cable (los cascos de toda la vida) y el altavoz, respectivamente. Creo que la salida de audio que te falta por gestionar (audio vía BT) debería controlarse con "setBluetoothScoOn".
Lo que me ha dejado un poco "loco" es ese "setMode". Dice la documentación que esa función es para controlar el comportamiento del audio de la capa de telefonía, y su único parámetro parece confirmarlo...
MODE_NORMAL=0
MODE_RINGTONE=1
MODE_IN_CALL=2
MODE_IN_COMMUNICATION=3
Según todo esto el primer bloque de la tarea (Auriculares -> Altavoz) apaga los cascos, enciende el altavoz y establece el audio en modo comunicación. Y el segundo bloque (Altavoz -> Auriculares) apaga el altavoz, enciende los cascos y pone el audio en modo normal.
Entiendo que lo que pretendes es "enrutar" el audio de un canal a otro, pero las funciones que has usado lo que hacen es activar/desactivar las distintas salidas de audio del dispositivo y "enrutar" el audio de las llamadas. Lo curioso es que ese "truco" parece que funciona ¿...?
En cualquier caso, tu dominio de Java desde Tasker es para quitarse el sombrero.