Ahora no puedo hacer pruebas pero fíjate que en este
enlace en la función InjectST cambio el eip, como tu pretendes, sin problemas tras suspender el hilo, para reanudarlo después.
Quizás sea más sencillo con una dll y hooks pero si lo consigues sin ello es perfectamente válido.
Saludos.