How and which component of an Operating System is responsible for the transition of a process from the blocked state to the ready queue?
When an I/O is started, it will typically have an I/O request structure associated with it that includes items like the process ID that the I/O belonged to.  When the I/O completes the device driver will typically fork into an OS level I/O subsystem in the OS which will queue the IO request packet notification to the process and move the process to a computable queue.  (this may vary a little from one OS to another).   The process then waits for it's turn to become computable. 

And yes, anything that executes code requires CPU time... though this is considered "interrupt time" rather than user time.