Yes either open ticket or cash is better than a fixed date. I checked with the labour dept, they suggested this as well. Because as long as she hasn't returned to home country for whatever reasons, even with recording and/or signed letter to confirm she agreed with fixed date ticket, it eventually doesn't help much, it's absolutely always the employer's obligaton to send her back, no matter what! Moreover, if so happened the maid could only return to home country after the open ticket validity period, e.g. she has serous medical conditions so she has to stay at hospital, it's your responsibility to issue her another valid ticket. But think about this, there's an upper limit to this risk, because the loss to you is only as much as a ticket fees. So the labour officer said the least risk approach is to give her money, or an open ticket is much better than a fixed date ticket.
About annual leaves entitlement: should calculate based on day basis, not month.