Good question on TODATETIMEOFFSET (but I prefer to write, for example, "330" instead of "'+05:30'").
I tend to wonder about "ensure all my time values are consistent and comparable". Will using datetimeoffset achieve that when the local time difference between two places will change somewhere between never and four times a year? For example Wellingon NZ was 12 hours ahead of London UK until a few weeks ago, then on 29 Sept it became 13 hours, and on 29 Oct it will become 14 hours, and then on 25 March next year it will become 13 hours again until 1st April when it reverts 12 hours. This is because most local times change their time zone (and hence their time zone offset) twice every year, and the time at which this happens is not co-ordinanted between different localities. Also, just knowing the country is not enough to determine which standard time zone and which adjusted time zones are used (and when the are adopted/dropped) - it's rather obvious for very big countries with a large east-west spread like the USA and Russia multiple zones are needed, but it also applies to smaller countries like Spain ( Las Palmas uses WET and WEST - same as London and Lisbon - while Madrid uses CET and CEST - imposed by Franco to fit with Berlin) and New Zealand (Port Hutt uses time zones 45 minutes ahead of Wellington).
It seems to me that to achieve the stated objectives the code which logs things and their times has to know, every time it logs something, what its local time zone offset for that something at the time it happened so that it can apply the appropriate offset, and is getting that parameter value is a bit more work that just calling TODATETIMEOFFSET.