Nice example!
I didn't know you can change position/size of a sprite and then immediately test if it's overlapping another object in the same event. I thought you need to wait for the next tick.
So using this technique I think you can find the point of collision with fairly complex shapes.
Will need to define a few image points - one on each node of the collision polygon, where the red dots are.
("polygon" made with image points should be slightly larger/ slightly outside of the collision polygon)
When collision with an asteroid is detected, take a small sprite, say 4x4 pixels, and move it from one image point to another (along the blue lines), constantly checking if it's overlapping the asteroid. Once it's overlapping, that would be your collision point!