I will answer my own question after finding a solution.
Simulink is very obvious at continuous signal for jump start user, complex discrete signals not that obvious; unless you can hold your breath by going through those amazing user guide (indeed great documentation, but just takes so long and so much repetition to get the point.)
First of all gaps can be created by concatenating 2D array with extra columns by using "Matrix Concatenate block".
After this step, depends on the enable signal and sample time pairing. An Unbuffer or Variable Selector can be used.
"DSP toolkit | Variable Selector" produces continuous signal, make this block "enabled" by using "enable" can gate the output. Unbuffer output can also be gated by using a "Switch" otherwise Unbuffer will hold the last value when the enable signal is deserted.
One of the lesson I learnt from the course of making the subsystem work, maybe helpful for hardware designers, when working with Simulink matrix and signal routings think less or think no hardware at all; mind only the signal path, block I/Os, block process finishes at exact simulation time, no processing delay. Put a scope and narrow down to the problem.
I didn't remove the original question. Wish my blah, blah, ... could eventually help someone struggle the similar way as I did.