Hey,
I haven't gotten that far with my development yet, and the hardware on the PC turn 50 may be different I'm not sure (my unit is a PC Turn 55 with two optical sensors one for tool position plus an opto on the 'home' location)
But, there may be some case for using additional logic here:
wiki.linuxcnc.org/cgi-bin/wiki.pl?HAL_Components
Also, HAL timedelays may be useful?:
linuxcnc.org/docs/2.4/html/man/man9/timedelay.9.html
In one of the examples linked by tommylight the toolchange_index.hal uses timedelays on the servo thread.
I'm new to the more advanced usage of HAL and don't fully comprehend your situation but those might be worth exploring. Also, some of the M Codes used in the mapped gcode file can include delays that may be useful (e.g. M19)
I'll let someone that knows HAL better than I answer you further though.