Different Default Block for Parsing vs Editing

You’ll need to create a custom command that performs the desired behaviour and bind it to Enter; see this similar question with that exact solution: Handle enter press but with different node type

Your re-ordering of the schema’s nodes is right on track with what is described in the library guide, specifically the penultimate paragraph of the Content Expressions section:

The order in which your nodes appear in an or-expression is significant. When creating a default instance for a non-optional node, for example to make sure a document still conforms to the schema after a replace step[,] the first type in the expression will be used. If that is a group, the first type in the group (determined by the order in which the group’s members appear in your nodes map) is used.

Re-ordering the schema so <div> elements get inserted during parsing will give you half of the behaviour, and binding a custom command to Enter should give you the other half.