My first intuition on this would be to have your continuous a/d process pipe to some custom process (not sox), which simply takes a binary stream on stdin and creates a continuous series of data files on disk of equal length (e.g. 20 minutes worth of samples, or whatever seems like a good interval), using some reasonable template pattern for file names.
Then, there'd be a separate process (running continuously) that scans for new files at regular intervals, and runs sox on each new file, converting it from raw to whatever format you want as a final product.
Dave Graff