Not sure this is a bug or not.
Based on my experiences, the way that OTM stores event_date in status_history table is:
If time_zone_gid='Local', then it means date recorded is in local time zone. No time zone conversion when displaying on screen.
If time_zone_gid= any time zone gid, event_date is in UTC time zone. When the date is displaying on the screen, OTM will convert it based on time_zone_gid.
So, maybe Milestone treats all event_date in UTC regardless time_zone_gid.
There might be a workaround by saving Event Date in UTC as Refnum using a Agent listens to Status Received event.
Code:
select from_tz(cast(event_date as timestamp),
decode(time_zone_gid,'Local',time_zone_gid,'UTC')) at time zone 'UTC'
from order_release_status_history
where i_transaction_no=$i_transaction_no
Then use Saved Query as Based On in Milestone Link.