A transaction sending 0.4 BTC with 100 confirmations is not high enough priority to send with no fee.
priority = sum(input_value_in_base_units * input_age)/size_in_bytes
((0.4 * 100,000,000) * 100) / 258 = 15,503,875
Transactions need to have a priority above 57,600,000 to avoid the enforced limit. I would recommend ANY payment include a fee even if it would qualify to be free, as "free transaction" space in blocks is limited, and profit-motivated miners have no incentive to include free transactions over those with fees.
Thanks for the details. I'll check the source code.