Hi,
- please don't map check_date:surface as it doesn't benefit the database in any way, especially if the surface is asphalt. The surface won't change in contrast to smoothness which could get worse over time.
- Only use uncontrolled/traffic_signals as values for the crossing=* tag. It might even be better to not use this tag at all and use crossing:signals=yes/no instead, though I'm not really sure yet. Either way if you want to tag a zebra, use crossing:markings=zebra.
- Yes, you should probably use footway=crossing for a footway crossing a cycleway but it's just a form of micromapping and you don't need to split the footway in every place like this.

In context of some more general path tagging, try to always use the footway=* tag with highway=footway. The values are, as written on the wiki, sidewalk, crossing, traffic_island and path.
For another general tip for segregated cycle- and footways I recommend making it so that the cycleway is on the left side of the direction of the way. It will then be rendered correctly by CyclOSM.