Think of each 'State' as of a "way things are" for a period of time. That period of time could be as little as zero seconds to as much as hours. And the system goes from one state to another based on "exit conditions" which mean a certain criteria was met.
The BCS has 8 processes, each containing 8 states. There can only be one state running in each process at a time. But you can have as many processes running at at time as you like.
My BCS is set up in a somewhat chronological format. Note that my system is fairly automated, so it lends it self to sequential operation. Each of my processes have a "Process Timer", which continues through each state, and each state has a "State Timer" that does not continue. These help differentiate process times (like boil time) and state times to help with timed exit sequences.
The first process is Mash Prep, and it has states for filling the MLT, heating the strike water, maintaining the strike water temp, and doughing in. The second process is my mash steps, where I have four states each covering a certain mash rest (e.g. acid, protein, sach, etc.), and one state covering mash out. The third process is my sparge sequence, with states for heating/pumping sparge water with and without draining the MLT (I use electronic autosparge - see the video in my build for operation). The fourth process is boiling, which has states for bringing up to boil, boiling, and sanitizing my chillers. This process will run in parallel with the sparge process, as the boil heating begins during MLT draining. The fifth process is whirlpool and transfer - this one might be of interest to you.
The first state in that process is to turn the chillers on and recirculate through the whirlpool arm. This will cool the boiling wort in the kettle so I can add flameout/hopstand hops without isomerizing the oils. The exit of that state is based upon a 30 second state timer. The second state keeps pumping but turns off the chillers - this enables mixing of the wort to ensure an even temperature, and it exits based upon a state timer. The third state keeps pumping but checks for either the state timer of 5 seconds to expire, or the temperature to be at or below 180 degrees. If the timer expires, it exits to the first state to cool the wort further. If the temperature criteria is met, the state exits to the whirlpool state. There are two whirlpool states (with and without chillers inline), then on to fermenter transfer.
I do not think your HLT should be on its own process. I think you should have your brew steps grouped into processes. You can have any process affect your HLT temp. For example, if you are doing a step mash, and you have a mash process, each state in there would dictate the HLT temp, raising it as needed.
I think the best approach is to write out all the brew steps in "states". First, this happens (e.g. heat HLT to a temperature). Then this happens, etc. Once written out, group them together and build those into discrete processes. Make sense?
-BD