Tras varios días pude solucionar todo, javascript envía cadenas en utf8, php conecta al servidor con SET NAMES utf8, y mi base de datos, y todas las tablas en ella tienen codificación UTF8, collation utf8_spanish_ci.
Ahora me surgió un problema muy molesto, enviando consultas select que contengan 'éíóúáñ' dentro de ella, la base de datos me devuelve todos los resultados con 'eiouan' y viceversa, es decir si busco por ejemplo 'señor'
el servidor me devuelve:
señor
senor
Si busco 'senor' me devuelve:
senor
señor
Esto pasa realizando las consultas desde Ajax, el comandline(este solo me acepta 'n' ya que con 'ñ' devuelve 0 rows, problema de utf8 en cmd windows) e incluso con el Navicat, por esto deduzco que el problema debe estar en la base de datos. Esto me trae de cabeza

Gracias!
PD: la busqueda de concordancia la hago de esta forma 'LIKE '%ñ%' OR nombre LIKE '%ñ%' LIMIT 30'