One of the issues with CaptureBitmap is that it takes multiple bitmaps and compares them, to make sure that the image is stable. If there is any movement on your screen (e.g. a rotating hourglass cursor, a moving progress indicator, etc.) then silktest will have great difficulty getting a screenshot it believes is stable. In practice, if you set the bitmap-related timing options so that it just takes one screenshot and saves it, it does actually get a perfectly good image every time in my experience.
If SilkTest is hung then in any case you won't be able to take a screenshot from SilkTest regardless of where the functionality comes from.
For stability of CaptureBitmap I wonder if when OPT_BITMAP_MATCH_INTERVAL is set to very small (like 0 or 1) would that make it more stable. Have input cursor to go away (as suggested by help or other way) and useCursor.GetType would help you avoid animated cursor (but obviously it won't eliminate the problem for some case). Also have it wrapped and re-tried many time if required(we assume you are screwed anyway hence we can waste time here [img]images/icons/smile.gif[/img] )