Buenas, sobre el tema de las limitaciones, algunas es verdad que son bastante frustrantes aunque la mayoría están justificadas.
Como programador (principalmente páginas web, pero ya he hecho alguna aplicación android y aún estoy aprendiendo cosas, tal vez pronto haga mis propios plugins para tasker

) a veces alucino con las cosas que es capaz de hacer la aplicación y no entiendo como hace muchas, pero es verdad que hay otras que no serían tan dificiles...
Después de seguir bastante tiempo el foro oficial en que el programador participa bastante se ve claramente que su actitud es "si puede hacerlo un plugin, mejor" y en casos como el envío desatendido de mails que ya hay formas de hacerlo pues no se mete, que su
lista de cosas por hacer es ya bastante larga...
Y cosas como un uso más completo de la cámara de fotos lo veo mejor como un plugin ya que añadiría mucho peso a tasker y además sería muy complejo de hacer porque hay que tener en cuenta los distintos modelos de moviles y las peculiaridades de sus cámaras, y no sería algo que usara todo el mundo al fin y al cabo.
La mayoría de limitaciones que comentas son del propio sistema operativo, que, por ejemplo, genera un evento al recibir SMS (ante el que tasker puede reaccionar) pero no al enviarlos, o el reaccionar a los botones: ninguna aplicación puede reaccionar al botón "home" y a los de "menu" y "atrás" solo puede reaccionar la aplicación activa del momento. Los de camara y busqueda si son diferentes, y tasker si tiene un evento para el primero y otro para la pulsación larga del segundo.
Para sortear el problema de las aplicaciones abiertas en segundo plano, no hay forma que yo sepa de saber si está sonando musica, pero encontré por ahí y adapté una tarea que ejecuta un comando en terminal y devuelve si una aplicación está en marcha o no (primer o segundo plano).
Aquí está el xml
Es una tarea que hay que ejecutar como sub-tarea pasandole como parametro 1
el nombre del package de la aplicación(se puede ver en la URL en web de google play, para poweramp es
com.maxmpz.audioplayer)y devuelve 1 si está en marcha y 0 si no.Espero te sirva, yo lo uso para controlar el estado del GPS con el navigation que tambien puede pasar a 2º plano y me va perfecto.