Re: 50% duty cycle
You must not drive two complementary transistors with simple inverted PWM signals, because of finite time that you need to turn off transistor, which will work for some time even there is no control signal. In that case both transistors work, which makes big current (you want to short Vdd adn gnd ).
To avoid such effect betwen PWM signals should be some dead time (time for turn off transistor) in which both transistors control signals are off.
Try to search for deadband pwm....
PSoC microcontrollers have such possibility to make deadband PWM, with programable 16 bit pwm, and dead time.