Cuando detectas el cruce, esperas xx tiempo hasta activar el optoTRIAC, el tiempo esperado tiene que ser menos a 10ms, o para asegurarse menor a 8ms, que esos 10ms serian medio ciclo.
Entonces si detecto el cruce, espero 5ms y activo un pulso al optoTRIAC, quiere decir que la mitad de onda estaria pasando.
El problema como dijo Chaly es tu optoacoplador no va a activarse, la unica forma que se active el opto es que detecte un 0V en los terminales del TRIAC, cuando queremos activarlo a nuestra voluntad. Por eso mismo te dijo que uses el otro opto. Uno que no posee cruce por 0.
Sino la unica que te queda es activarlo ciclos completos, me refiero a si de 10 ciclos, solo lo activas 5 ciclos, entonces tendrias un 50%. Pero esto solo se aplica a algunos casos. Y tampoco es un control de fase como buscas.
Por otro lado, me parece poco creible que ya 2 personas te digan que es el optoTRIAC y vos sigas buscandole alguna otra causa.