@Matt-Pitts A very small simplification - in your first rule have you tried:
if (hall_motion_raw.state == 1) sendCommand(Toggle_2,ON)
I am not sure if it works but hall_motion-raw.state is a number so I think it should but it is always hard to predict how Openhab item states works in rules. I hate all these conversions like "as Decimaltype" needed in many places.
How simple the rules can be made depends also on the settings of your sensor. My motion sensor (z-wave) sends ON when triggered and OFF after a set time after untriggered. So the rules become really simple.
Without knowing how your sensor type and setup thus it is hard to comment much. From reading about the most common type of sensor it seems that If it has the jumper set to retriggering then the signal stays on until motion is no longer detected while set to non-retriggering the signal varies on/off as triggered. If your sensor works the "retriggering" way the rule for "hallLigtOff" may work with something like:
rule "hallLightOff"
when
Item hall_motion_raw changed
then
if(hall_motion_raw.state ==0) sendCommand(Toggle_2,OFF)
end
Sorry for not being entirely sure about how this sensor works but I have not used it or experimented with it. I need to try it some day.
UPDATE: I tested one of these sensors today (referring to settings described here http://www.mysensors.org/build/motion) :
Jumper set to "auto reset"- sketch sends 1 and then a 0 comes when there is no motion and timer runs out.
Jumper set to "no reset" - sketch sends 1 and then 0 comes after timer has run out, if motion still detected a 1 is sent again followed by a 0 when timer runs out and so on. So as long as motion is detected this goes on over and over again.
When using "auto-reset" the rule above ought to work (if the "DecimalType conversion can be deleted, otherwise with this added)