On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

No pre-made bits. Top 200ft I iterate over x values and pick a y value for the floor (being more likely to pick a lower height on the left, more likely to pick a  higher height on the right, and only going up or down by 1 in the center). Next 200ft I iterate over y values and pick a center and width for the tunnel, making sure the three tiles above the center are always clear (so the player never gets stuck). Bottom 400ft  I do the same, but only changing on even-number y values because there's no single-width brick tile. And then I just create an open square wherever the bottom of the tunnel winds up.

You're definitely right about space being a bad restart button, if I were to update this that'd be the first thing I change.