PHP - Bitcoind sets up wrong transaction fee
The value you specify for custom fee is in fee per kilobyte. Until recently, the "size" for fee computations was always rounded up to 1 kilobyte anyway, leading some people to believe that the amount they're setting is the absolute amount instead.

Your transaction is 225 bytes, and pays 0.000045 BTC fee. That is exactly 0.0002 BTC per 1000 bytes, so it is working as intended.