Perhaps you have made the problem harder than it needs to. If you think about it you basically need a normal bullet hell, but with the bullets flying in reverse. Obviously that would require some intense trigonometry shenanigans to pull it off with two moving participants, but here me out. What if the enemy doesn't move while the bullet is in the air? All that pesky math would go away and as a bonus the AI gets even more predictable (remember predictability is actually good for game AI). Granted one AI standing there for two seconds might look boring and make the game easier, but imagine 30 of them simultaneously in a level. That would be kept the player on their toes and provide the challenge of dodging.
By the way would you be willing to share your prediction code, so we could be on the same page?