there is no “end of list” - 0x00 as the last byte of the “list”; I’m not sure whether end of string works the same when the payload is being parsed
Mikrotik follows the RFC and only sends options which the client is asking for. So as you say that it does not work with iOS in particular, enable DHCP logging in Mikrotik (/system logging add topics=dhcp) and check that the client sends 119 in the list of requested options
Thanks everyone. I have fixed that typo, added the null byte and see it now being sent successfully to Windows, but it still does not seem to be working with iOS 14 (actually iPadOS).
I can see in the router log that it is being requested and being sent to the iPad along with the other network information through DHCP. and as it is working on Windows, this is probably some issue to do with iOS/iPadOS.