The key is cause-and-effect. Your patrolling loop at the moment says: "I have no idea when the Enemy should move, so I will check every X seconds to force him to move". This statement is false, you know exactly when the Enemy needs to move. He needs to move at the beginning of the game, and he needs to move after a small delay when we hits his PositionMarker - there is no guess work here, these are all absolute points in time that you know about.
I've reworked your code to remove the loop completely. I've added one function, since you need to call the function on startup, and on collision. There were also subtle bugs in there that weren't obvious because you were calling the same code every 0.05 seconds, which was accidentally fixing the problem - namely, you were setting the bullet angle after setting the speed - this actually doesn't work, the speed needs to be set first, or the angle isn't picked up.
http://www.blackhornettechnologies.com/ ... gered.capx