TI has solenoid drivers that do alot for you, you basically program them to have a set and hold current. You can also do current measurement and stuff like that, not just time based feedback.
__
The DRV101 is a low-side power switch employing a pulse-width modulated (PWM) output. Its rugged design is optimized for driving electromechanical devices such as valves, solenoids, relays, actuators, and positioners. The DRV101 is also ideal for driving thermal devices such as heaters and lamps. PWM operation conserves power and reduces heat rise, resulting in higher reliability. In addition, adjustable PWM allows fine control of the power delivered to the load. Time from dc output to PWM output is externally adjustable.
The DRV101 can be set to provide a strong initial closure, automatically switching to a "soft" hold mode for power savings. Duty cycle can be controlled by a resistor, analog voltage, or digital-to-analog converter for versatility. A flag output indicates thermal shutdown and over/under current limit. A wide supply range allows use with a variety of actuators.
The DRV101 is available in 7-lead staggered TO-220 package and a 7-lead surface-mount DDPAK plastic power package. It is specified over the extended industrial temperature range, -40°C to +85°C.
___
They have a few more IIRC. This will keep heat down and increase life time of your parts.