Falo isso meramente para lhe ajudar, espero que entenda. Mas foi você mesmo que se colocou nessa situação. Veja:
havia estimado a entrega para o dia 15, mas ele me ofereceu um bônus,
Você aceitou entregar em um prazo que você sabia que não era possível.
após a reunião onde definimos tudo e depois de me pagar esse bônus, ele me vem com opções para configurar que são surreais!
Você aceitou as mudanças no que foi pedido inicialmente sendo que podia ter negado, podia ter dito a ele que o pedido era "surreal". Aliás, você ainda pode dizer isso.
É totalmente surreal como as pessoas usam os programadores!
Ele não te usou, ele fez pedidos e você aceitou os pedidos dele por livre e espontânea vontade.
Uma das coisas que me deixou irritado recentemente foi uma opção que ele pediu para eu adicionar,
Você mesmo disse, é um pedido. E todo pedido pode ser negado.
Ele só está incluindo todas estas opções porque acha que é fácil
Ele acha que é fácil porque você não disse a ele que é difícil. Como ele vai saber que o que ele está pedindo é muito complexo se você não disser a ele? Você tem o conhecimento técnico para isso, não ele.
Você não acha que tá exigindo demais de uma pessoa leiga? Você querer que um cliente leigo tenha noção técnica suficiente para isso, seria como ficar com raiva porque perguntou a um bebê qual é a opinião dele sobre a relatividade geral e ele lhe respondeu com uma risada.
Para eles, é como se não houvesse complexidade envolvida.
É óbvio irmão. Como diabos eles saberiam o nível de complexidade? Eles pagam você para avaliar essas coisas. Se eles fossem capazes de fazer isso não precisariam de você.