Hello H.,
Without concurrent state (who it seems to must be independent), here is a proposal...:
@startuml
hide empty description
state Producer {
state P1
state fork1 <<fork>>
state P2
[*] --> P1
}
state choice1 <<choice>>
state Consumer {
state C1
state C2
state fork2 <<fork>>
[*] --> C1
}
P1 --> fork1
fork1 ----> P2
fork1 --> choice1
P2 -u---> P1
C1 ----> fork2
choice1 --> fork2
fork2 --> C2
C2 -u---> C1
@enduml

If that can help,
Regards,
Th.