In regards to waypoint-fired missiles, the only way (that I'm aware of after extensive testing) to make them work is to calculate an intercept manually, place a waypoint there and fire the missiles at it, then use the currently broken Move Waypoint command to reposition the waypoint after the missiles approach whatever you want to hit close enough for their on-board sensors to detect it, but before they reach the waypoint itself. Doing so makes the missiles lose the waypoint as a target and target enemy ship contacts instead.
You can do this without resorting to moving waypoints.
You just need to add an engineless stage in the middle of your missile.
From back to front:
Stage 1: Just an engine and fuel and one (or more) of Stage 2, with a release range of zero.
Stage 2: No engine. Has an active sensor. Carries 1 or more of Stage 3, with a release range less than sensor range and less than the stage3 missile's fuel range. You want your release range to be will within both of those ranges (sensor and stage3 fuel) if you might be attacking ships that are running away.
Stage 3: Carries the warhead. Ideally moves fast, does lots of damage, etc. Does not need a sensor, but you might want one (see below).
Calculate and fire upon your intercept waypoint as usual.
When stage1 reaches the waypoint, it releases stage2.
Stage2 inherits the same waypoint as its target, and since it is already there and it has no engine, it immediately becomes a mine.
If you calculated your waypoint position accurately, the mine will immediately (in the same increment) detect the bad guys and release stage 3 upon them.
If your stage 3 does not have a sensor, then all of them released at the same time will target the same ship.
If stage 3 does have a sensor (and can detect the hostile ships), you may qualify for random targeting.
Other conditions apply.