If you look at your debug log extract, for your order id 283 (the GAT order, you'd see the following:
10:31:32:617 <- 3-283-0-FB-STK--0.0---SMART--USD-----BUY-42-MKT-------0--1-280-0-0-0-0-0-0--0--------0---1-0---0---1-1--0------0-----0-----------0---0-0---0--0-0-0-0--1.7976931348623157e+308-1.7976931348623157e+308-1.7976931348623157e+308-1.7976931348623157e+308-1.7976931348623157e+308-0----1.7976931348623157e+308-----0-0-0--
This indicates that your GoodAfterTime field was not transmitted to IB, which explains why the MKT order executed immediately.
The reason this was not transmitted is possibly because you did not use the correct field name - I think it should be "
goodAfterTime" (lowercase g) and not "
GoodAfterTime"